我想在JSON数据中获取id,url,img和视频标题。我的当前代码不输出任何内容 任何人都可以告诉我我做错了什么。谢谢
$code2 = stripslashes($_POST['outputtext']);
$data = json_decode($code2, true);
$i = 0;
foreach($data->videos as $values)
{
echo $values->id . "\n";
echo $values->url . "\n";
echo $values->img . "\n";
echo $values->title . "\n";
$i++;
}
数据:
{
"cat": {
"id": "1234567",
"source_id": null,
"title_en": "first season",
"description_en": "This is spring category ",
},
"videos": [{
"id": "312412343",
"url": "\/2015-07-17\/1abcd.mp4",
"img": "image\/44\/\/2015-07-17\/1abcd.jpg",
"title": "first",
}, {
"id": "2342343",
"url": "\/2015-07-16\/2dcdeg.mp4",
"img": "images\/44\/\/2015-07-16\/2dcdeg.jpg",
"title": "second",
}];
}
验证了json数据:
{
"cat":{
"id":"1234567",
"source_id":null,
"title_en":"first season",
"description_en":"This is spring category "
},
"videos":[
{
"id":"312412343",
"url":"\/2015-07-17\/1abcd.mp4",
"img":"image\/44\/\/2015-07-17\/1abcd.jpg",
"title":"first"
},
{
"id":"2342343",
"url":"\/2015-07-16\/2dcdeg.mp4",
"img":"images\/44\/\/2015-07-16\/2dcdeg.jpg",
"title":"second"
}
]
}
答案 0 :(得分:4)
因为你打电话
$data = json_decode($code2, true);
您的$data
是数组,而不是您尝试访问它时的对象。因此要么将其作为常规数组访问,要么将json_decode()
的第二个参数更改为false
(或者删除,因为这是默认值),因为这是控制转换行为的原因。
请参阅文档:http://php.net/manual/en/function.json-decode.php
您的数据不是有效的JSON(最后为;
,冗余和缺失的逗号 - 它只是被破坏了。)
如果出现此类问题,var_dump()
非常有助于检查您实际使用的数据。