perl 读取json 数据

来源:互联网 发布:怎么养自己的淘宝号 编辑:程序博客网 时间:2024/04/28 17:47
perl 读取json 数据

JSON (JavaScript Object Notation) 数据格式,官方的说法是“一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成“。

我的感觉是这个东东和XML之类的格式类似,总之当我们需要格式化地传输数据时,这些东西就可以起作用了。 关于JSON本身是怎么组织数据的,可以去这里。

数据格式定义好了,剩下的事情就是用编程语言解析它。 这里介绍Perl中JSON模块, 下面的这段代码能够完成将JSON格式的数据转化成Perl数据结构!这太方便了,有了Perl的数据结构,我们就可以方便的用Perl对这些数据进行访问了.


json 格式:

json.html 的json内容为:
{
"uns":"chengjun",
"pwd":"12344"
}

PERL读取
#!/usr/bin/perl

use Encode;
use JSON;
use Data::Dumper;

print "读取json数据...\n";

my $json = new JSON;
my $js;


if(open(MYFILE, "D:/workspace/perl/json.html"))
{
print "读取json数据成功。\n";
while(<MYFILE>)
{
$js .= "$_";
}
}else{
print "读取json数据失败。\n";
}

my $obj = $json->decode($js);
print "json数据为:".Dumper($obj);
print $obj->{'uns'};
close(MYFILE);

==============================================
以上为简单的json数据,如果遇到json数组怎么办了?!
例如:

{
"un":"chengjun",
"pwd":[{
   "g1":"g1value",
   "g2":"g2value"
},{
     "g1":"g1111value",
   "g2":"g2222value"
}
]
}
对应的perl为:
use JSON;
use Data::Dumper;

print "测试json数据...\n";

my $json = new JSON;
my $js ;

if(open(Myfile,"e:/perlwork/json.html")){
printf "打开json数据成功\n";

while(<Myfile>){
   $js .= "$_";
}

my $obj = $json->decode($js);
printf Dumper($obj)."\n";

for my $item(@{$obj->{'pwd'}}){
    print $item->{'g1'}."\n";
   }
}else{
die("打开json数据失败!!!!!!");