php中的json_decode

时间:2012-09-24 16:19:47

标签: php json

我想对这个json文件使用json_decode但是出了点问题。几天前工作正常,但现在返回NULL。

<?php 

$url = 'http://opendata.diavgeia.gov.gr/api/decisions?org=eot&output=json'; 


function works2($url) 
{ 
   $opts = array( 
     'http'=>array( 
       'method'=>"GET", 
       'header'=>"Connection:Keep-Alive\r\nAccept:*/*\r\n" 
     ) 
   ); 

   $context = stream_context_create($opts); 
   $retstr = file_get_contents($url,false,$context); 
   return $retstr; 
} 


var_dump(json_decode(works2($url)));
?>

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

我使用了JSON验证器,而url似乎提供了一个INVALID JSON

尝试使用jsonList验证此处的网址http://jsonlint.com/

我得到了

 Parse error on line 822:
 ...         "subject": "Ματαίωση του πρόχει
 -----------------------^
 Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['

如果URL提供了正确的JSON字符串,则代码应该有效。

答案 1 :(得分:0)

我认为json_decode停止为你工作。这是服务器响应。你打印$ retstr以确保它不是空的还是坏了?

答案 2 :(得分:0)

works2结果没问题。 也许json编码的内容太大或(可能)包含不需要的字符或格式错误的序列。 看看默认的opendata输出。它是xml格式,但下载时间很长。