0
我試圖提取我需要的值'system1 system2 system3 system4'。我曾經從下面的$json
輸出中提取內容。我收到錯誤ARRAY(0x210e150)
。請建議如何僅檢索這些值。如何在perl中提取json值
$VAR1 = {
'response' => {
'mydocs' => [
{
'host' => 'system1'
},
{
'host' => 'system2'
},
{
'host' => 'system3'
},
{
'host' => 'system4'
}
],
}
};
use LWP::Simple;
use JSON;
use Data::Dumper;
my $url = "https://localhost/content;
my $json = from_json(get($url));
print Dumper($json); # received above output
print "$json->{'response'}->{'docs'}";
for my $data (@$json) {
my $result = ref $data->{response} ? $data->{response}->{docs} : $data->{response};
print "Result is $result\n";
}
'ARRAY(0x210e150)'不是錯誤。這是數據結構的字符串表示/地址。 – simbabque
該代碼對您顯示的輸出沒有意義。 '$ json'中沒有數組ref,如果這就是你所顯示的'$ VAR1'。你也一直提到一個關鍵的'docs',但在你的數據中只有'mydocs'。如果輸出'ARRAY(0x210e150)'來自'print'$ json - > {'response'} - > {'docs'}'行,那麼它非常正確,假設有一個關鍵的'docs'而不是'mydocs'),因爲那裏麪包含一個帶有一堆hash ref的數組ref,如果你打印它,它會顯示地址,你可以用'Dumper'來像上面那樣查看其他內容。 – simbabque