Perl JSON如何获取密钥的值
我有以下json输出,我正在尝试获取enabled的值Perl JSON如何获取密钥的值,json,perl,Json,Perl,我有以下json输出,我正在尝试获取enabled的值 { "_id":"sensor1", "_returned":1, "_embedded":{ "rh:doc":[ { "_id":{ }, "enabled":"true" } ] } } 我试过以下方法 foreach my $x ( @{$vsConfig}) { print
{
"_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是一个包含一个元素的数组。如果需要多个元素,则可能需要循环该数组。