我发现了类似的问题,但没有一个与我的结构完全匹配。我从未使用过JSON,所以我不清楚它是如何解析的。
我要做的就是回显来自url的JSON响应,并将响应作为变量进行操作。结构是:
{"results":{"books":{"2014-05-13":[{"book":{"book_date":"2014-05-13","book_publisher":"Some Publisher","book_id":"123","book_author":"Some Author" etc etc etc
我希望能够将每个图书的日期,出版商,身份证明,作者信息反映出来并存储到变量中。
我一直在使用的原因导致错误:为foreach
提供的参数无效()
$api_url = 'myurl/books.json';
$json = file_get_contents($api_url);
$json2 = json_decode($json, true);
foreach($json2->book as $book)
{
echo $book->date;
echo $book->publisher;
echo $book->id;
echo $book->date;
echo $book->author;
}
答案 0 :(得分:1)
$json2 = json_decode($json,true);
将创建一个关联数组
所以你不能像现在这样以对象的方式迭代它。
你应该得到一个如下的数组
[results] => Array
(
[books] => Array
(
[2014-05-13] => Array
(
[0] => Array
(
[book] => Array
(
[book_date] => 2014-05-13
[book_publisher] => Some Publisher
[book_id] => 123
[book_author] => Some Author
)
)
)
)
)
)
所以你需要使用数组索引来遍历数据。