2016-08-30 104 views
0

我想ID,网址,IMG和在JSON data.My当前代码视频标题不输出任何 可以在任何一个告诉我,我在做什么wrong.Thanks如何使用PHP foreach解析json数组?

$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

可能它不会输出任何内容,因为您尝试像访问对象一样访问数组。 –

+0

$ data = json_decode($ code2,true);返回数组不是对象 –

+1

您的数据无效json http://json.parser.online.fr/ –

回答

4

因为你叫

$data = json_decode($code2, true); 

您的$data数组而不是您尝试访问它的对象。因此,请将其作为常规数组访问,或者将第二个参数json_decode()更改为false(或者将其删除,因为这是默认值),因为这是控制转换行为的原因。

见文档:http://php.net/manual/en/function.json-decode.php

你的数据不是有效的JSON(;末,冗余和缺失昏迷 - 它只是打破)。

如果出现这样的问题,var_dump()对检查您真正使用的数据非常有帮助。

+0

感谢您的回复。 Marcin Orlowski我将json_decode的第二个参数更改为false,但仍然没有数据! – user1788736

+0

查看编辑答案 –

+0

我用var_dump($ data)我得到null!所以如何获得我想要的数据?因为我使用的方法不工作! – user1788736