我是Perl的新手,希望循環播放此JSON數據並將其打印到屏幕上。使用Perl循環播放JSON
我該怎麼做?
$arr = '[{"Year":"2012","Quarter":"Q3","DataType":"Other 3","Environment":"STEVE","Amount":125},{"Year":"2012","Quarter":"Q4","DataType":"Other 2","Environment":"MIKE","Amount":500}]';
我是Perl的新手,希望循環播放此JSON數據並將其打印到屏幕上。使用Perl循環播放JSON
我該怎麼做?
$arr = '[{"Year":"2012","Quarter":"Q3","DataType":"Other 3","Environment":"STEVE","Amount":125},{"Year":"2012","Quarter":"Q4","DataType":"Other 2","Environment":"MIKE","Amount":500}]';
使用JSON或JSON::XS解碼將JSON轉換爲Perl結構。
簡單的例子:
use strict;
use warnings;
use JSON::XS;
my $json = '[{"Year":"2012","Quarter":"Q3","DataType":"Other 3","Environment":"STEVE","Amount":125},{"Year":"2012","Quarter":"Q4","DataType":"Other 2","Environment":"MIKE","Amount":500}]';
my $arrayref = decode_json $json;
foreach my $item(@$arrayref) {
# fields are in $item->{Year}, $item->{Quarter}, etc.
}
這裏是CPAN一個包,應該做的伎倆,JSON.pm
一旦你解析它,你可以把它像任何其他的Perl引用。
例
$perl_scalar = $json->decode($json_text)
文檔
編碼的相反:期望一個JSON文本並試圖解析它, 返回結果簡單的標量或參考。錯誤的Croaks。
JSON數字和字符串變成簡單的Perl標量。 JSON數組成爲Perl數組引用,JSON對象成爲Perl hashrefs。真正 變爲1(JSON ::真),假變爲0(JSON :: FALSE)和空變 undef.`
類似的堆棧溢出問題: Parsing an array encoded in JSON
你有散列的數組。
use JSON::XS qw(decode_json);
my $records = decode_json($json_text);
for my $record (@$records) {
for my $key (keys(%$record)) {
my $val = $record->{$key};
say "$key: $val";
}
}
如果你想讓它在Perl,那麼爲什麼JavaScript代碼? – 2012-07-25 02:42:17
對不起 - 我的錯誤 - – Mike 2012-07-25 02:45:39
在計算機科學中,我們一直在尋找更一般的解決方案來解決問題,這通常需要從更一般的角度來看問題。您所遇到的具體問題是不知道如何解析JSON,具體解決方案在您接受的答案中提供。但更普遍的問題是不知道在哪裏可以找到Perl工具。更一般的解決方案是熟悉CPAN搜索網站,例如https://metacpan.org/ – DavidO 2012-07-25 06:06:50