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数据...
";
my $json = new JSON;
my $js;
if(open(MYFILE, "D:/workspace/perl/json.html"))
{
print "读取json数据成功。
";
while(<MYFILE>)
{
$js .= "$_";
}
}else{
print "读取json数据失败。
";
}
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数据... ";
my $json = new JSON;
my $js ;
if(open(Myfile,"e:/perlwork/json.html")){
printf "打开json数据成功
";
while(<Myfile>){
$js .= "$_";
}
my $obj = $json->decode($js);
printf Dumper($obj)."
";
for my $item(@{$obj->{'pwd'}}){
print $item->{'g1'}."
";
}
}else{
die("打开json数据失败!!!!!!");