我必须在下面编写代码:
#!/usr/intel/bin/perl
use strict;
use warnings;
use JSON::XS;
my $json = '{"Object1":{"Year":"2012","Quarter":"Q3","DataType":"Other 3","Environment":"STEVE","Amount":125},"Object2":{"Year":"2012","Quarter":"Q4","DataType":"Other 2","Environment":"MIKE","Amount":500}}';
my $arrayref = decode_json $json;
for my $array(@$arrayref){
for my $key (keys(%$array)){
my $val = $array->{$key};
print "$key: $val\n";
}
}
Run Code Online (Sandbox Code Playgroud)
当我编译它时,它打印出错误“Not an ARRAY Reference at Generator.pl line 12.”。
我想将 JSON 解析为一个对象,并根据具有属性的对象获取数据。我该怎么做?
我期望在解析它之后,我可以用来比较字符串、打印、循环它等等。
它不是数组引用,而是哈希引用:
#!/usr/intel/bin/perl
use strict;
use warnings;
use JSON::XS;
use Data::Dumper;
my $json = '{"Object1":{"Year":"2012","Quarter":"Q3","DataType":"Other 3","Environment":"STEVE","Amount":125},"Object2":{"Year":"2012","Quarter":"Q4","DataType":"Other 2","Environment":"MIKE","Amount":500}}';
my $arrayref = decode_json $json;
print Data::Dumper->Dump([$arrayref], [qw(arrayref)]);
Run Code Online (Sandbox Code Playgroud)
并输出:
$arrayref = {
'Object2' => {
'Quarter' => 'Q4',
'Year' => '2012',
'Amount' => 500,
'DataType' => 'Other 2',
'Environment' => 'MIKE'
},
'Object1' => {
'Amount' => 125,
'DataType' => 'Other 3',
'Year' => '2012',
'Environment' => 'STEVE',
'Quarter' => 'Q3'
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7809 次 |
| 最近记录: |