如何从以下JSON中选择每个标题的数据? 我已经解码了JSON,但我不确定如何选择我想要的部分。
{
"responseData": {
"results": [
{
"title": "Justin Giesbrecht 749",
"titleNoFormatting": "Justin Giesbrecht 749",
},
{
"title": "Gopher dunes 09",
"titleNoFormatting": "Gopher dunes 09",
},
{
"title": "dirtbike Justin",
"titleNoFormatting": "dirtbike Justin",
},
{
"title": "A Warming",
"titleNoFormatting": "A Warming",
}
],
"cursor": {
"pages": [
{
"start": "0",
"label": 1
},
{
"start": "4",
"label": 2
}
],
"estimatedResultCount": "6",
"currentPageIndex": 0,
}
},
"responseDetails": null,
"responseStatus": 200
}
我认为会是这样的,但我什么都没得到:
echo "Response ". $jsonS->responseData->results[1]->title;
答案 0 :(得分:5)
实际上你已经正确阅读了标题部分,这是无效的JSON。
将JSON复制到JSON验证器/ lint中,例如http://www.jsonlint.com/会在几个地方的最后一个对象属性之后显示你有额外的(逗号)(准确地说是5个位置,在每个'titleFormatting'
属性之后和'currentPageIndex'
之后)。< / p>
如果您修复了这些错误并使用json_decode
解析它,例如:
$jsonS = json_decode($json_text);
然后你自己的代码:
echo "Response " . $jsonS->responseData->results[1]->title;
将输出第二个(索引1是第二个索引)结果标题
响应Gopher dunes 09
答案 1 :(得分:0)
当你对json_decode进行编码时,它会转换为常规的PHP数组,因此你可以像$ decodingObject [“nodeName”]一样引用它。
答案 2 :(得分:0)
当我使用PHP的json_decode
方法引用它时解析JSON时,它会给我NULL,因为PHP认为它不是有效的JSON。添加var_dump($jsonS);
以查看是否还发生了这种情况。如果是,您可能需要确保您的JSON有效。
这是我做的,供参考:
$json_data = <<<END_OF_JSON
{
"responseData": { "results": [
{
"title": "Justin Giesbrecht 749", "titleNoFormatting": "Justin Giesbrecht 749",
},
{
"title": "Gopher dunes 09",
"titleNoFormatting": "Gopher dunes 09",
},
{
"title": "dirtbike Justin",
"titleNoFormatting": "dirtbike Justin",
},
{
"title": "A Warming",
"titleNoFormatting": "A Warming",
}
],
"cursor": {
"pages": [ {
"start": "0",
"label": 1
},
{
"start": "4",
"label": 2
}
],
"estimatedResultCount": "6",
"currentPageIndex": 0,
}
},
"responseDetails": null,
"responseStatus": 200
}
END_OF_JSON;
$jsonS = json_decode($json_data);
var_dump($jsonS);
echo "Response ". $jsonS->responseData->results[1]->title;
输出结果为:
NULL响应
如果您使用不同的JSON,请编辑您的问题并分享。但如果您实际使用上述内容,则无效......
答案 3 :(得分:0)
在JSON中,不允许在数组/对象定义中留下尾随逗号。因此,在PHP中完全有效时写:
$a = array(1,2,3,);
(注意最后一个逗号),在JSON中
a : [1,2,3,]
或
a : {x :'y',}
无效。