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为:

#!/usr/bin/perl

use Encode;
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数据失败!!!!!!");
#}

输出文件其实就是 数组和哈希的混合格式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容