Php Json解析错误
我有下面的JSON和PHP,我有错误,我看不出我做错了什么 错误Php Json解析错误,php,json,Php,Json,我有下面的JSON和PHP,我有错误,我看不出我做错了什么 错误 Notice: Trying to get property of non-object in C:\Users\tom.AD\PhpstormProjects\SYS\index.php on line 7 Notice: Trying to get property of non-object in C:\Users\tom.AD\PhpstormProjects\SYS\index.php on line 9 Warni
Notice: Trying to get property of non-object in C:\Users\tom.AD\PhpstormProjects\SYS\index.php on line 7
Notice: Trying to get property of non-object in C:\Users\tom.AD\PhpstormProjects\SYS\index.php on line 9
Warning: Invalid argument supplied for foreach() in C:\Users\tom.AD\PhpstormProjects\SYS\index.php on line 11
JSON
{
"apr": [
{
"f1": "139eg1",
"zones": [
{
"f2": "unknown",
"zone": "123"
},
{
"f2": "unknown",
"zone": "321"
},
{
"f2": "unknown",
"zone": "123"
},
{
"f2": "top",
"zone": "321"
},
{
"f2": "unknown",
"zone": "123"
}
]
},
{
"f1": "139eg2",
"zones": [
{
"f2": "unknown",
"zone": "123"
},
{
"f2": "unknown",
"zone": "321"
},
{
"f2": "unknown",
"zone": "123"
},
{
"f2": "top",
"zone": "321"
},
{
"f2": "unknown",
"zone": "123"
}
]
},
{
"f1": "139eg3",
"zones": [
{
"f2": "unknown",
"zone": "123"
},
{
"f2": "unknown",
"zone": "321"
},
{
"f2": "unknown",
"zone": "123"
},
{
"f2": "top",
"zone": "321"
},
{
"f2": "unknown",
"zone": "123"
}
]
}
]
}
PHP
$json_file = file_get_contents('json/posts.json');
$jfo = json_decode($json_file);
$title = $jfo->apr->f1;
$posts = $jfo->apr->zones;
foreach ($posts as $post) {
echo $post->zone;
}
apr
是一个对象数组,因此根据您提供给我们的JSON
,无法使用->
访问。看起来你想进入所有的区域。要做到这一点,您需要使用以下内容在数组中循环:
foreach ($jfo->apr as $object) {
print_r($object->zones);
}
要直接访问它们(因为您没有键,而且它是一个索引数组),您需要执行$jfo->apr[$key]
,其中key是数组中现有索引的某个数值$jfo->apr
。例如:
$first_zone_array = $jfo->apr[0]; //This gets the following:
object(stdClass)#2 (2) { ["f1"]=> string(6) "139eg1" ["zones"]=> array(5) { [0]=> object(stdClass)#3 (2) { ["f2"]=> string(7) "unknown" ["zone"]=> string(3) "123" } [1]=> object(stdClass)#4 (2) { ["f2"]=> string(7) "unknown" ["zone"]=> string(3) "321" } [2]=> object(stdClass)#5 (2) { ["f2"]=> string(7) "unknown" ["zone"]=> string(3) "123" } [3]=> object(stdClass)#6 (2) { ["f2"]=> string(3) "top" ["zone"]=> string(3) "321" } [4]=> object(stdClass)#7 (2) { ["f2"]=> string(7) "unknown" ["zone"]=> string(3) "123" } } }
假设第7行是
$title=$jfo->apr->f1
显然,$jfo
不包含您认为它所包含的内容。如果没有您提供的更多信息,即您在验证之前做了哪些工作,那么没有人能够真正帮助您。