&引用;不是数组引用“;循环json文件时-Perl
我试图通过foor循环读取json文件,但我得到一个错误“notarray reference”,这是我使用的代码&引用;不是数组引用“;循环json文件时-Perl,perl,loops,cgi,Perl,Loops,Cgi,我试图通过foor循环读取json文件,但我得到一个错误“notarray reference”,这是我使用的代码 $json_text = JSON::XS->new->utf8->encode ($return); my $decoded_file = decode_json $json_text; for my $items (@{$decoded_file}) { } $decoded_文件: $VAR1 = [ { 'data'
$json_text = JSON::XS->new->utf8->encode ($return);
my $decoded_file = decode_json $json_text;
for my $items (@{$decoded_file}) {
}
$decoded_文件:
$VAR1 = [
{
'data' => {
'id' => 0,
'type' => 'car',
'details' => [
{
'year' => '2001',
'color' => 'red',
}
],
'status' => 'Y'
},
你所说的不是真的
use strict;
use warnings;
my $decoded_file = [
{
'data' => {
'status' => 'Y',
'id' => 0,
'type' => 'car',
'details' => [
{
'year' => '2001',
'color' => 'red'
}
]
}
} # Added this.
]; # Added this.
for my $items (@{$decoded_file}) {
}
print "ok\n";
产生
ok
在您向我们展示的内容中,
$decoded_file
包含对数组的引用,因此,您的循环确实是您应该使用的。您还需要向我们显示用作输入的$return
或$json\u text
。当我用代码其余部分预期的数据填充空格时,该代码不会出错。@Tanktalus$return是一个哈希引用,我现在已经更新了这个问题ucan se$json_text的值,请显示use Data::Dumper的输出;打印转储程序($return)
。您声称的不是真的。请对您的问题进行最低限度的、可运行的描述。你看,还是有同样的错误,这是我不明白的$return是一个hash ref,$decode_文件也是一个hash ref,我不知道为什么:/Im使用ref($return)ref($decoded_文件),它们都输出ref(hash(0x4884))……在$return中的daya看起来很像$decoded_文件中的daya“仍然得到相同的错误”,您的问题仍然没有说明您的问题。在你真正证明你的问题之前,我们无法帮助你。看见