我想对这个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)));
?>
有人可以帮助我吗?
答案 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格式,但下载时间很长。