json - Perl - 从 JSON 到对象/哈希

标签 json perl

我必须在下面编写代码:

#!/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";
        }

}

当我编译它时,它向我打印错误“在 generator.pl 第 12 行不是 ARRAY 引用。”。

我想把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)]);

并输出:

$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'
                           }
            };

关于json - Perl - 从 JSON 到对象/哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40839664/

相关文章:

ios - 解析 YouTube JSON

javascript - GoJS自定义节点保存默认值

perl - 我什么时候应该使用 `use` ?

python - 是否有与 Perl 的 x 运算符(复制字符串)等效的 Python?

mysql - 使用 Perl 更新 Ruby on Rails "created_at"日期

用于解析文本文件并匹配字符串的 Perl 脚本

json - 有什么办法可以从Go中的给定JSON中提取JSON模式? [复制]

json - Golang json 解码

python - 用ansible中的多个值替换多个模式

perl - Web 上的官方 Perl 文档是什么?