一尘不染

通过perl解析以JSON编码的数组

json

我用下面的Perl代码来解析在JSON数组,使用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

阅读 326

收藏
2020-07-27

共1个答案

一尘不染

decode_json函数返回一个arrayref而不是一个列表。您必须取消引用它才能获取列表:

my @decoded_json = @{decode_json($json_text)};

您可能需要阅读perldoc perlreftutperldoc perlref

2020-07-27