我有一个经典的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;
什么都行不通...... :( 你能帮助我吗 ? 谢谢!
答案 0 :(得分:1)
第二个参数true
到json_decode()
意味着它应该在JSON中为{}
创建关联数组而不是对象。因此,除了像Explosion Pills指出的那样处理索引数组外,还需要使用数组语法来访问键控元素:
$data[0]['articles'][0]['title']
如果您希望能够使用->
语法,请忽略第二个参数或将其设置为false
。
我希望在转录到问题时,JSON中缺少的逗号是错误的。如果没有,您还需要首先修复创建JSON的代码。
答案 1 :(得分:0)
$data
本身就是一个数组。尝试
$data[0]->articles[0]->title;
此外,JSON无效(在第二篇文章数组元素之前缺少逗号)。
答案 2 :(得分:0)
有comma
,缺少
}
,
{
带有第二个参数json_decode
的 true
返回一个数组
print_r($data['articles']);
echo $data['articles']
会输出Array