-3

我从使用 URL 的 API 调用中获得了这个引用的 JSON 字符串。

my $person = '[{"id":"1232334", "name": "james"}]'

如何使用 Perl 在该列表中获取length该列表和read a dictionary键值:

所需的输出:

length = 1
person id : 1232334
person name : james

谢谢!

4

2 回答 2

4

请不要从原始 JSON 字符串开始所有问题。你有 JSON;首先将其转换为 perl 数据结构,然后询问如何使用该数据结构执行 X、Y 或 Z(向我们展示它的外观use Data::Dumper; print Dumper $datastructure;

假设您已经解码了 JSON,您将拥有:

    [
      {
        'name' => 'james',
        'id' => '1232334'
      }
    ]

假设它存储在$people

print 'length = ', scalar(@$people), "\n";
print "person id : $people->[0]{'id'}\n";
print "person name : $people->[0]{'name'}\n";
于 2013-11-12T23:33:09.753 回答
2

这是解决方案:

my $person = [{id => '1232334', name => 'james'}];

my $size = @$person;  # sizeof array_ref 
print "length = $size\n";
for my $i (@$person) {
    foreach $key (keys %{$i}) {
        print "person $key => $i->{$key}\n";
    }
}

输出:

length = 1
person name => james
person id => 1232334
于 2013-11-12T23:23:31.070 回答