使用以下作为JSON响应的示例,我将从使用PHP
的API获得[
{
"profile_background_tile": true,
"listed_count": 82,
"status": {
"created_at": "Fri Apr 20 20:06:12 +0000 2012",
"place": null,
},
"default_profile": false,
"created_at": "Tue Oct 25 00:03:17 +0000 2011"
}
]
我会用这样的东西......
$obj = json_decode($json);
foreach($obj as $index => $user) {
echo $user->profile_background_tile;
echo $user->listed_count;
echo $user->status;
echo $user->default_profile;
echo $user->created_at;
}
现在我需要帮助的地方是status
下的JSON响应,created_at
和place
我不知道如何访问这些项目?
答案 0 :(得分:1)
您使用完全相同的逻辑,但更深层次:
echo $user->status->created_at;
echo $user->status->place;
这就是为什么有效:你解码的JSON是对象数组。每个对象都有profile_background_tile
之类的属性。它们还具有status
属性,该属性恰好是另一个对象,具有属性created_at
和place
。并使用$obj->prop
语法访问对象属性。
答案 1 :(得分:1)
您的JSON
无效......
看看
"status": {
"created_at": "Fri Apr 20 20:06:12 0000 2012",
"place": null,
},
,
之后"place": null
不应该存在
尝试
$json = '[{"profile_background_tile": "true",
"listed_count": 82,
"status": {
"created_at": "Fri Apr 20 20:06:12 0000 2012",
"place": null
},
"default_profile": false,
"created_at": "Tue Oct 25 00:03:17 +0000 2011"
}]';
echo "<pre>";
$obj = json_decode ( $json );
foreach ( $obj as $index => $user ) {
echo $user->status->created_at , PHP_EOL;
echo $user->status->place , PHP_EOL;
}
输出
Fri Apr 20 20:06:12 0000 2012