0

我有一个经典的 JSON 问题,我知道很多帖子都在问这个问题……但我怀疑我尝试获取的 JSON 是否具有正确的结构。

文件像这样开始:

[{
"time":"0-12h",
"articles":[
{
"id":1,
"domain_id":22,
"title":"Hi Guys"
 }

{
"id":2,
"domain_id":17,
"title":"Hi everyone"
 }

]

}]

我尝试了很多组合来呼应标题:

$data = json_decode($json, true);
echo $data->articles;    

或者

echo $data->articles->title;

或者

echo $data->articles[0]->title;

没有任何效果...... :(你能帮我吗?谢谢!

4

3 回答 3

1

的第二个参数意味着它应该在 JSON 中true创建json_decode()关联数组而不是对象。{}因此,除了像 Explosion Pills 指出的那样处理索引数组之外,您还需要使用数组语法来访问键控元素:

$data[0]['articles'][0]['title']

如果您希望能够使用->语法,请省略第二个参数或将其设置为false.

我希望 JSON 中缺少的逗号在转录问题时是一个错误。如果没有,您还需要首先修复创建 JSON 的代码。

于 2013-06-24T15:55:32.197 回答
0

$data本身就是一个数组。尝试

$data[0]->articles[0]->title;

JSON 也无效(在第二篇文章数组元素之前缺少逗号)。

于 2013-06-24T15:51:10.840 回答
0

有一个comma,失踪

}
,
{

json_decode用第二个参数true返回一个数组

print_r($data['articles']);

echo$data['articles']会输出Array

于 2013-06-24T15:52:23.977 回答