JSON with Perl
本章介绍如何使用Perl编程语言编码和解码JSON对象。让我们开始准备环境,开始使用Perl进行JSON编程。
环境
在使用Perl开始编码和解码JSON之前,您需要安装可从CPAN获取的JSON模块。一旦您下载了JSON-2.53.tar.gz或任何其他最新版本,请按照以下步骤操作 -
$tar xvfz JSON-2.53.tar.gz
$cd JSON-2.53
$perl Makefile.PL
$make
$make install
JSON Functions
功能
图书馆
encode_json
将给定的Perl数据结构转换为UTF-8编码的二进制字符string。
decode_json
解码JSON字符string。
to_json
将给定的Perl数据结构转换为一个json字符string。
from_json
期待一个json字符string并尝试解析它,返回结果引用。
convert_blessed
使用此函数具有真实值,以便Perl可以在对象的类中使用TO_JSON方法将对象转换为JSON。
Encoding JSON in Perl (encode_json)
Perl encode_json()函数将给定的Perl数据结构转换为UTF-8编码的二进制字符string
Syntax
$json_text = encode_json ($perl_scalar );
or
$json_text = JSON->new->utf8->encode($perl_scalar);
Example
以下示例显示了使用Perl的JSON下的数组 -
#!/usr/bin/perluseJSON;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/perlpackageEmp;subnew{my$class=shift;my$self={name=>shift,hobbies=>shift,birthdate=>shift,};bless $self,$class;return$self;}subTO_JSON{return{%{shift()}};}packagemain;useJSON;my$JSON=JSON->new->utf8;$JSON->convert_blessed(1);$e=newEmp("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"}
解码Perl中的JSON(decode_json)
Perl decode_json()函数用于解码Perl中的JSON。此函数将从json解码的值返回到适当的Perl类型。
用法
$perl_scalar = decode_json $json_text
or
$perl_scalar = JSON->new->utf8->decode($json_text)
例
以下示例显示如何使用Perl来解码JSON对象。在这里,如果您的计算机上没有它,则需要安装Data :: Dumper模块。
#!/usr/bin/perluseJSON;useData::Dumper;$json="{"a":1,"b":2,"c":3,"d":4,"e":5}";$text=decode_json($json);printDumper($text);
执行时输出结果如下-
$VAR1 = {
"e" => 5,
"c" => 3,
"a" => 1,
"b" => 2,
"d" => 4
};