Perl JSON如何获取密钥的值

Perl JSON如何获取密钥的值,json,perl,Json,Perl,我有以下json输出,我正在尝试获取enabled的值 { "_id":"sensor1", "_returned":1, "_embedded":{ "rh:doc":[ { "_id":{ }, "enabled":"true" } ] } } 我试过以下方法 foreach my $x ( @{$vsConfig}) { print

我有以下json输出,我正在尝试获取enabled的值

{  
   "_id":"sensor1",
   "_returned":1,
   "_embedded":{  
      "rh:doc":[  
         {  
            "_id":{  },
            "enabled":"true"
         }
      ]
   }
}
我试过以下方法

foreach my $x ( @{$vsConfig}) {
    print $x;
}
我不知道为什么它不返回任何内容,它不是散列引用吗


谢谢

假设
$vsConfig
是json解码后获得的哈希参考:

print $vsConfig->{_embedded}->{'rh:doc'}->[0]->{enabled}
整个代码,包括解码json的部分:

use strict;
use warnings;
use JSON qw/decode_json/;

my $json = q|
{  
   "_id":"sensor1",
   "_returned":1,
   "_embedded":{  
      "rh:doc":[  
         {  
            "_id":{  },
            "enabled":"true"
         }
      ]
   }
}
|;

my $vsConfig = decode_json( $json );

print $vsConfig->{_embedded}->{'rh:doc'}->[0]->{enabled};

您可以在第一个箭头之后删除所有这些箭头,如在print$vsConfig->{u embedded}{'rh:doc'}[0]{enabled}我知道,我使用箭头作为个人偏好-它们给我的印象是代码更易于阅读谢谢您的帮助,我只想知道为什么您必须指定{0}@Deano实际上,它是[0],rh:doc是一个包含一个元素的数组。如果需要多个元素,则可能需要循环该数组。