Я хочу использовать json_decode для этого json-файла, но что-то не так. Он работал отлично несколько дней назад, но теперь возвращает 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))); ?>
Может ли кто-нибудь мне помочь?
Я использовал валидатор JSON, и, похоже, URL-адрес представляет собой INVALID JSON
попробуйте использовать jsonList для проверки URL здесь http://jsonlint.com/
я получил
Parse error on line 822: ... "subject": "Ματαίωση του πρόχει -----------------------^ Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
Если URL-адрес содержит правильную строку JSON, ваш код должен работать.
Я не думаю, что json_decode
перестанет работать на вас. Это скорее ответ сервера. Вы печатали $ retstr, чтобы убедиться, что он не пуст или не сломан?
works2 результат в порядке. Возможно, кодированное json-содержимое слишком велико или (возможно) содержит нежелательные символы или некорректную последовательность. Взгляните на вывод opendata по умолчанию. Это формат xml, но он долго загружается.