如何从Perl中的JSON响应中提取数据

时间:2017-06-16 04:09:01

标签: perl reference hashtable

我有一个JSON响应,我需要在Perl中处理它以从中提取信息并进行进一步处理。 JSON文档如下所示:

{
  "SITE_1": [
    {
      "values": [
        {
           "time": 20170616100000,
           "v":    11
        }
      ]
    }
  ],
  "SITE_2": [
    {
      "values": [
        {
           "time": 20170616100000,
           "v":    12
        }
     }
  ]
}

我试图使用以下方法在子程序中处理它:

my ($ref) = @_;
foreach my $row (0..$#{$ref}) {
   $val = ${$ref}{$site}[0]{values}[0]{v}; 
   Prt('-O',"$val\n");    etc.. etc...

获取"不是数组错误"我认为由于JSON中的第一项是{}而不是[]。

解析数据的最简单方法是什么?

1 个答案:

答案 0 :(得分:2)

您是否在询问如何迭代哈希的元素?

for my $site (keys(%$ref)) {
   ...
}