2013-01-07 61 views
3

搜索结果后,在代码上实现代码后,仍然无法显示任何内容。没有。不是一件事。使用PHP解析URL中的JSON

我有一个URL吐出JSON:

{"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); 

任何想法/建议吗?


更新 - 显然服务器被锁定,但是在室内我没有注意到:)很明显,网页没有!谢谢您的帮助!返回

+0

的URL进行解码?你尝试过'var_dump()'吗? – 2013-01-07 15:53:48

+0

那么'print_r($ arr);'显示什么?这里有什么问题? –

+2

'var_dump($ url);'在尝试解析任何内容之前,看看你是否确实有响应。 – MrCode

回答

1

From PHP Manual

NULL,如果JSON不能被解码或者如果编码数据 比递归限制

既然你不指定递归限制较深,有机会,无论您的JSON是无效的还是没有任何内容正在从您的网址中检索。

三件事尝试:

  • 确定是否有一个json_decode错误

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

  • 检查正在被返回的数据

    print_r($url);

  • 看看数据将作为一个对象

    $obj = json_decode($url);

    print_r($obj);

+0

print_r(json_last_error());吐出一个0. print_r($ url);吐出什么。 – cfox

+1

所以有这个问题,$ url是空的,意思是'file_get_contents(“http:// [website] /json/test.json”);'不检索任何东西。你能提供完整的网址,我们可以检查吗? – PassKit

+0

我已将URL添加到我原来的问题中。 – cfox