**JSON (JavaScript Object Notation) 數(shù)據(jù)格式币狠,官方的說法是“一種輕量級的數(shù)據(jù)交換格式。 易于人閱讀和編寫。同時也易于機器解析和生成“仅颇。
我的感覺是這個東東和XML之類的格式類似碟绑,總之當我們需要格式化地傳輸數(shù)據(jù)時俺猿,這些東西就可以起作用了。 關于JSON本身是怎么組織數(shù)據(jù)的格仲,可以去這里押袍。
數(shù)據(jù)格式定義好了,剩下的事情就是用編程語言解析它凯肋。 這里介紹Perl中JSON模塊谊惭, 下面的這段代碼能夠完成將JSON格式的數(shù)據(jù)轉化成Perl數(shù)據(jù)結構!這太方便了侮东,有了Perl的數(shù)據(jù)結構圈盔,我們就可以方便的用Perl對這些數(shù)據(jù)進行訪問了.
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);
==============================================
以上為簡單的json數(shù)據(jù)药磺,如果遇到json數(shù)組怎么辦了?煤伟!
例如:
{
"un":"chengjun",
"pwd":[{
"g1":"g1value",
"g2":"g2value"
},{
"g1":"g1111value",
"g2":"g2222value"
}
]
}
對應的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,"e:/perlwork/json.html")){
printf "打開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("打開json數(shù)據(jù)失敯┡濉!1阆恰Nд蕖!7虐浮姚建!");
#}
輸出文件其實就是 數(shù)組和哈希的混合格式