0

我想对这个 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)));
?>

有人可以帮我吗?

4

3 回答 3

1

我使用了 JSON 验证器,并且 url 似乎提供了 INVALID JSON

尝试使用 jsonList 在此处验证 URL http://jsonlint.com/

我明白了

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

如果 URL 提供了正确的 JSON 字符串,您的代码应该可以工作。

于 2012-09-24T16:27:45.153 回答
0

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

于 2012-09-24T17:12:14.440 回答
0

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

于 2012-09-24T16:24:53.363 回答