JSON & Perl

本教程将教你如何使用Perl编程语言进行编码和解码JSON对象。让我们开始准备Perl编程环境并使用JSON开

环境

开始使用Perl编码和解码JSON之前,需要安装 JSON模块,可以从CPAN获得。下载 JSON-2.53.tar.gz 或任何其他最新版本,请遵循以下步骤:

$tar xvfz JSON-2.53.tar.gz
$cd JSON-2.53
$perl Makefile.PL
$make
$make install

JSON 函数

函数 程序库
encode_json Perl数据结构转换为UTF-8编码,二进制串
decode_json 一个JSON字符串进行解码
to_json Perl数据结构转换为JSON字符串
from_json JSON字符串,并试图解析它,返回结果的参考
convert_blessed 使用此函数的 true 值,以便Perl可以使用TO_JSON的方法将对象转换成JSON对象的类。

在Perl中编码JSON(encode_json)

Perl encode_json的() 函数Perl数据结构转换成一个UTF-8 编码的二进制字符串。

语法:

$json_text = encode_json ($perl_scalar );or$json_text = JSON->new->utf8->encode($perl_scalar);

实例

下面的例子显示阵列在JSON用Perl:

#!/usr/bin/perl
use JSON;my %rec_hash = ('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
my $json = encode_json \%rec_hash;
print "$json
";

在执行过程中,这将产生以下结果:

{"e":5,"c":3,"a":1,"b":2,"d":4}

下面的示例显示了如何Perl对象可以转换成JSON:

#!/usr/bin/perlpackage Emp;
sub new
{my $class = shift;my $self = {name => shift,hobbies  => shift,birthdate  => shift,};bless $self, $class;return $self;
}
sub TO_JSON { return { %{ shift() } }; }package main;
use JSON;my $JSON  = JSON->new->utf8;
$JSON->convert_blessed(1);$e = new Emp( "sachin", "sports", "8/5/1974 12:20:03 pm");
$json = $JSON->encode($e);
print "$json
";

在执行过程中,这将产生以下结果:

{"birthdate":"8/5/1974 12:20:03 pm","name":"sachin","hobbies":"sports"}

解码JSON在Perl中(decode_json)

Perl decode_json()函数用于解码JSON在Perl中。此函数返回值从json解码适当的Perl类型

语法:

$perl_scalar = decode_json $json_textor$perl_scalar = JSON->new->utf8->decode($json_text)

实例

下面的例子显示了 Perl 如何用来解码JSON 对象。在这里,需要安装Data::Dumper模块

#!/usr/bin/perl
use JSON;
use Data::Dumper;$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';$text = decode_json($json);
print  Dumper($text);

在执行过程中,这将产生以下结果:

$VAR1 = {'e' => 5,'c' => 3,'a' => 1,'b' => 2,'d' => 4};

JSON Perl相关推荐

  1. perl6检测网站CMS脚本(测试代码)

    代码如下: use HTTP::UserAgent; use JSON::Tiny;my $check-url = 'www.baidu.com'; #say @*ARGS[0]; #检测命令行参数 ...

  2. Web指纹识别器系列1:开源项目搜集和反思

    文章目录 前言 指纹识别工具 百度检索 Github 在线识别 信息整理 筛选工具 在线平台 反思总结(20%关键) 前言 本文用时 信息搜集和整理:60 minutes(then have a re ...

  3. 第1篇:Python 环境搭建

    千里之行始于足下,今天我们先来学习 Python 环境搭建. Python 介绍 Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/)是一种广泛使用的解释型.高级编程.通用型编 ...

  4. linux编程用到什么编程语言,学好编程第一步,你得学会用什么工具来提高编写效率...

    怎么选用编辑器 大家在学习编程的时候,必然要面临一个问题,选用什么编辑器来编写代码.编辑器有很多种,一般可以分为两类,一种是文本编辑器,一种是IDE.文本编辑器就是简单的书写文本,比较常见的是vim, ...

  5. Bat大厂程序员常用的IDE工具,你接触过哪些?

    一.Jetbrains全家桶 JetBrains是一家捷克的软件开发公司,大家对它一定不陌生,如果陌生那你也一定用过他家的IDE工具集,比如,以下的产品. · IDE相关 AppCode- 适用于 i ...

  6. 盘点 | 好用的开发者IDE工具

    一.Cloud Toolkit Cloud Toolkit 是一款 IDE 插件,可以帮助开发者更高效地开发.测试.诊断并部署应用.通过 Cloud Toolkit,开发者能够方便地将本地应用一键部署 ...

  7. 工具推荐丨最适合程序员的六款好用 IDE 工具,赶紧收藏吧!

    今天给学编程的你们推荐六款好用的IDE工具,快来看看吧! 一.Cloud Toolkit Cloud Toolkit 是一款 IDE 插件,可以帮助开发者更高效地开发.测试.诊断并部署应用.通过 Cl ...

  8. 10个最好用的Python开发工具(IDE)

    对于程序员来说,除了日常争论世界上最好的语言是哪一门以外,哪款 IDE 是最好的也是争议颇多,今天我们就来介绍 10 款最好的 Python 编程 IDE,总有一款适合你! PyCharm PyCha ...

  9. perl malformed JSON string, neither tag, array, object, number, string or atom, at character offset

    [root@wx03 ~]# cat a17.pl use JSON qw/encode_json decode_json/ ; use Encode; my $data = [{'name' =&g ...

最新文章

  1. web前端开发培训完就业前景怎么样
  2. 设置RabbitMQ远程ip登录
  3. python codecs模块
  4. vs编译protobuf 3.0.0
  5. Oracle常用工具
  6. 《软件设计精要与模式》第二版源代码
  7. 面向对象C语言编程--抽象数据类型-AbstractDataTypes
  8. unity mysql生成cexcel_【C#附源码】数据库文档生成工具支持(Excel+Html)
  9. pytorch 画loss曲线_Pytorch使用tensorboardX可视化。超详细!!!
  10. jquery实现的时间轴
  11. 区分iphone和ipad 函数sysctlbyname 来获取设备名称
  12. linux下xampp的使用教程,Linux下安装xampp教程
  13. 【读书笔记】名创优品的101个新零售细节-张桓.杨永朋,品质和供应链是核心竞争力
  14. 13.6 SpringBoot集成Mongodb开发问题@EnableMongoRepositories路径配置
  15. 大气科学领域必备的模型软件汇总丨WRF、WRF-CMAQ、WRF-Chem、WRF-Hydro、WRF DA、PMF、MCM、CAMx、SMOKE、CMIP6等
  16. Mac电脑蓝牙连接出问题了,如何重置Mac的蓝牙模块
  17. Android 游戏引擎libgdx之Box2D Hello Box2D
  18. CocosCreator高斯模糊深度优化版
  19. IDEA 使用ctrl + alt + 方向键无法返回上一步解决办法
  20. Date.getTime() 方法

热门文章

  1. python之Excel操作
  2. LeetCode-9-Palindrome Number
  3. 开启OpenStack Api跨域请求(CORS)功能
  4. Chrome即将封杀Google Earth、Google Talk等插件
  5. MySQL数据库性能优化之硬件瓶颈分析
  6. Linux下用多种模式实现双网卡绑定!
  7. Word 2007批注及批注者姓名修改技巧
  8. 利用中继攻击解锁并开走汽车,本田不打算修复(含视频)
  9. 苹果紧急修复远程漏洞,影响数十亿设备
  10. Kramdown 配置不当引发 GitHub Pages 多个 RCE,得 $2.5万($6.1万系列之二)