3

谷歌搜索后,在代码上实现代码,我仍然无法显示任何内容。没有什么。不是一回事。

我有一个吐出 JSON 的 URL:

 {"videos":[{"video":{"name":"Sanyo Zio","youtube":"FxxLDr--R5A","post_date":"2010-10-08 01:00:00",...

这是我用来访问该页面的代码:

 $url = file_get_contents("http://[website]/json/test.json");

 $arr = json_decode($url,true);

现在这是我尝试从页面访问任何数据的简短列表:

1:

 print_r($arr);

2:

 foreach($arr['videos']['video'] as $item) {
   echo "Name: ". $item[0] ."<br>"; 
 }

3:

 $obj = $arr[0];
 echo $obj;

4:

 foreach($arr as $a){
   echo "Name: ".$a['videos']['video']['name']."<br />";
 }

显然我错过了一些东西,但我只是无法弄清楚我做错了什么!我的编码不正确吗?下面是我开始对 JSON 进行编码的方式:

 $arr = array('videos' => array());
 foreach($vid as $items){
  $arr['videos'][] = array('video' => array(
    'name' => $items['videoName'], 'youtube' => $items['youtubeID'], 'post_date' => $items['productionTimestamp'], 'description' => $items['videoDesc'], 'link' => $single_linker_values['deeplink'], 'image' => $image));
 }
 echo json_encode($arr);

有什么想法/建议吗?


更新 - 显然服务器已被锁定,但在内部我没有注意到 :) 显然网页确实如此!谢谢您的帮助!

4

1 回答 1

1

来自 PHP 手册

如果无法解码 json 或编码的数据比递归限制深,则返回 NULL

由于您没有指定递归限制,因此您的 JSON 可能无效或没有从您的 URL 中检索到任何内容。

尝试三件事:

  • 判断是否有 json_decode 错误

    print_r(json_last_error()); // call after json_decode

  • 检查是否正在返回数据

    print_r($url);

  • 查看数据是否会解码为对象

    $obj = json_decode($url);

    print_r($obj);

于 2013-01-07T15:56:24.760 回答