我有一个关于查询使用嵌套对象的JSON结构的问题。为了解释,我将使用一些例子。
对于示例清单,变量 $ json 是一个JSON文件:
movies [{"name":"good movie", "poster":"link"}]
通常在我在JSON文件上使用 json_decode()函数后,我可以执行类似
的操作$newFiles = $json["movies"];
foreach ($newFiles as $file) {
$name = $file["name"]; }
但是,假设我有这个JSON文件:
movies[{"name":"good movie", "poster": {"original":"link", "smaller":"link"}}]
我如何获得"原创" 的价值,我尝试过这样的事情:
$newFiles = $json["movies"];
foreach ($newFiles as $file) {
$poster = $file["poster" -> "original"]; }
然而,这并不起作用。我找不到合适的语法来查询它。任何帮助表示感谢,提前谢谢!
答案 0 :(得分:1)
使用json_decode()解码json时,请将第二个参数设置为true,如下所示:
<?php
$movies = '[{"name":"good movie", "poster": {"original":"link", "smaller":"link"}}]';
$movieArray = json_decode($movies,true);
foreach($movieArray as $movie){
print_r($movie['poster']['original']);
}
?>
这将允许您将返回的对象转换为关联数组。因此,可以执行$movie['poster']['original']
。