**JSON (JavaScript Object Notation) 數(shù)據(jù)格式,官方的說(shuō)法是“一種輕量級(jí)的數(shù)據(jù)交換格式。 易于人閱讀和編寫(xiě)。同時(shí)也易于機(jī)器解析和生成“。
我的感覺(jué)是這個(gè)東東和XML之類(lèi)的格式類(lèi)似,總之當(dāng)我們需要格式化地傳輸數(shù)據(jù)時(shí),這些東西就可以起作用了。 關(guān)于JSON本身是怎么組織數(shù)據(jù)的,可以去這里。
數(shù)據(jù)格式定義好了,剩下的事情就是用編程語(yǔ)言解析它。 這里介紹Perl中JSON模塊, 下面的這段代碼能夠完成將JSON格式的數(shù)據(jù)轉(zhuǎn)化成Perl數(shù)據(jù)結(jié)構(gòu)!這太方便了,有了Perl的數(shù)據(jù)結(jié)構(gòu),我們就可以方便的用Perl對(duì)這些數(shù)據(jù)進(jìn)行訪問(wèn)了.
json 格式:**
json.html 的json內(nèi)容為:
{
"uns":"chengjun",
"pwd":"12344"
}
PERL讀取:
#!/usr/bin/perl
use Encode;
use JSON;
use Data::Dumper;
print "讀取json數(shù)據(jù)...\n";
my $json = new JSON;
my $js;
if(open(MYFILE, "D:/workspace/perl/json.html"))
{
print "讀取json數(shù)據(jù)成功。\n";
while(<MYFILE>)
{
$js .= "$_";
}
}else{
print "讀取json數(shù)據(jù)失敗。\n";
}
my $obj = $json->decode($js);
print "json數(shù)據(jù)為:".Dumper($obj);
#print $obj->{'uns'};
close(MYFILE);
==============================================
以上為簡(jiǎn)單的json數(shù)據(jù),如果遇到j(luò)son數(shù)組怎么辦了?!
例如:
{
"un":"chengjun",
"pwd":[{
"g1":"g1value",
"g2":"g2value"
},{
"g1":"g1111value",
"g2":"g2222value"
}
]
}
對(duì)應(yīng)的perl為:
#!/usr/bin/perl
use Encode;
use JSON;
use Data::Dumper;
print "測(cè)試json數(shù)據(jù)...\n";
my $json = new JSON;
my $js ;
if(open(Myfile,"e:/perlwork/json.html")){
printf "打開(kāi)json數(shù)據(jù)成功\n";
while(<Myfile>){
$js .= "$_";
}
my $obj = $json->decode($js);
printf Dumper($obj)."\n";
#for my $item(@{$obj->{'pwd'}}){
# print $item->{'g1'}."\n";
# }
#}else{
#die("打開(kāi)json數(shù)據(jù)失?。。。。。。?);
#}
輸出文件其實(shí)就是 數(shù)組和哈希的混合格式