2016-04-25 57 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