我正在使用以下Perl代码使用JSON
module在JSON中解析数组。但返回的数组长度为1,我无法正确迭代它。所以问题是我无法使用返回的数组。
#!/usr/bin/perl
use strict;
my $json_text = '[ {"name" : "abc", "text" : "text1"}, {"name" : "xyz", "text" : "text2"} ]';
use JSON;
use Data::Dumper::Names;
my @decoded_json = decode_json($json_text);
print Dumper(@decoded_json), length(@decoded_json), "\n";
输出结果:
$VAR1 = [
{
'text' => 'text1',
'name' => 'abc'
},
{
'text' => 'text2',
'name' => 'xyz'
}
];
1
答案 0 :(得分:20)
decode_json
function返回一个arrayref,而不是一个列表。您必须取消引用它才能获得列表:
my @decoded_json = @{decode_json($json_text)};
答案 1 :(得分:3)
关于JSON,您可能需要确保安装JSON::XS
module,因为它比JSON
module中包含的纯Perl实现更快,更稳定。 JSON
模块在可用时会自动使用JSON::XS
。