使用PHP解码JSON文件

时间:2013-06-24 15:49:17

标签: json

我有一个经典的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;

什么都行不通...... :( 你能帮助我吗 ? 谢谢!

3 个答案:

答案 0 :(得分:1)

第二个参数truejson_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