我使用以下代码作为解析我的JSON的基础:http://soyuka.me/streaming-big-json-files-the-good-way/
它适用于我拥有的大多数JSON数据,但是一旦遇到JSON对象作为直接子对象,它就会失败。
这是我的JSON的简化版本:
[
{
"title": "Title",
"child_object": {
"title": "Child Title"
}
},
{
"title": "Title 2",
"child_object": {
"title": "Child Title 2"
}
}
]
解析后我得到了这个结果:
Array
(
[0] => Array
(
[0] => Array
(
[title] => Title
)
[child_object] => Array
(
[title] => Child Title 2
)
[2] => Array
(
[title] => Title 2
)
)
)
如果我将子对象转换为数组,解析器将生成此结果,与我在JSON数据上使用json_decode时的结果相同:
Array
(
[0] => Array
(
[0] => Array
(
[title] => Title
[child_object] => Array
(
[0] => Array
(
[child_title] => Child Title
)
)
)
[1] => Array
(
[title] => Title 2
[child_object] => Array
(
[0] => Array
(
[title] => Child Title 2
)
)
)
)
)
在解析JSON文件时如何将子对象放在适当位置的任何想法?
答案 0 :(得分:0)
它的工作原理如下:
$str = '[
{
"title": "Title",
"child_object": {
"title": "Child Title"
}
},
{
"title": "Title 2",
"child_object": {
"title": "Child Title 2"
}
}
]';
$json = json_decode($str);
foreach($json as $data) {
echo $data->{'title'};
echo $data->{'child_object'}->{'title'};
}