使用Perl循环JSON

Mik*_*ike 3 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}]';
Run Code Online (Sandbox Code Playgroud)

fri*_*edo 11

使用JSONJSON :: 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.
}
Run Code Online (Sandbox Code Playgroud)


ike*_*ami 10

你有一系列哈希.

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";
    }
}
Run Code Online (Sandbox Code Playgroud)

JSON :: XS