Perl 讀取json 數(shù)據(jù)

**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ù)組和哈希的混合格式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容