我是一个php newb,并且在理解如何解析json api返回时遇到一些问题。这是json的片段:
{
"results": [
{
"list_name": "",
"display_name": "",
"updated": "",
"bestsellers_date": "",
"published_date": "",
"isbns": [
{
"isbn10": "",
"isbn13": ""
},
{
"isbn10": "",
"isbn13": ""
}
],
"book_details": [
{
"title": "Book author",
"description": "Book description"",
"contributor": "",
"author": "Book author",
"contributor_note": "",
"price": ,
"age_group": "",
"publisher": "",
"primary_isbn13": "1010101010",
"primary_isbn10": "1010101010101"
}
],
"reviews": [
{
"book_review_link": "",
"first_chapter_link": "",
"sunday_review_link": "",
"article_chapter_link": ""
}
]
},
这是我到目前为止的php ...
<?php
$json=file_get_contents('the url for the api return');
// create array
$json_a=json_decode($json,true);
foreach($json_a[results] as $r)
{
echo '
List: '.$r[list_name].'
<br />
Title: '.$r[title].'
<br>
Description: '.$r[description].'
<br />
<br />
';
}
?>
我从api返回并且它为'list_name'提供了正确的值,但'title'和'description'仍未填充;所以,我知道我没有正确访问这些子键(?)。获取这些元素的正确语法是什么?
真的很感谢您所提供的任何指导。提前谢谢。
答案 0 :(得分:0)
$p
来自哪里?
您需要$r->book_details[0]->description
之类的内容来获取book_details数组第一项的说明。
答案 1 :(得分:0)
始终在字符串文字数组索引周围使用引号。例如,$ foo ['bar']是正确的,而$ foo [bar]则不是。但为什么?在旧脚本中遇到这种语法是很常见的:
<?php
$foo[bar] = 'enemy';
echo $foo[bar];
// etc
?>
来源:php.net
答案 2 :(得分:0)
标题和描述在子元素“book_details”中,这是一个数组本身
应该是
$r['book_details'][0]['title']
和
$r['book_details'][0]['description']
只需在PHP中打开错误报告,很明显您尝试访问的索引不存在。
更新:添加了数组索引
答案 3 :(得分:-1)
好吧,{
这意味着你有一个对象。即你通过$ var-&gt; name访问它
ans [
是一个数组,所以如果你有内容或者你通过$ var ['name']