2016-04-25 58 views
1

值我有以下的JSON输出,我试图让启用Perl的JSON如何获得的关键

{ 
    "_id":"sensor1", 
    "_returned":1, 
    "_embedded":{ 
     "rh:doc":[ 
     { 
      "_id":{ }, 
      "enabled":"true" 
     } 
     ] 
    } 
} 

我已经试过的值以下

foreach my $x (@{$vsConfig}) { 
    print $x; 
} 

我不知道为什么它不返回任何东西,是不是一个哈希引用?

由于

回答

2

假设$vsConfig是JSON被解码后获得的散列REF:

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}; 
+1

你可以在第一个箭头之后放置所有这些箭头,如打印$ vsConfig - > {_ embedded} {'rh:doc'} [0] {enabled} –

+0

我知道,我使用箭头作为个人偏好 - 他们给我展示次数激情代码更易读 –

+0

感谢您的帮助,我只想知道为什么您必须指定{0}? – Deano