2012-09-24 141 views
0

我想使用json_decode這個json文件,但出了問題。它幾天前工作正常,但現在返回NULL。json_decode在php中

<?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

[讀取json在php]中可能的重複(http://stackoverflow.com/questions/12568135/reading-json-in-php) –

+1

在您檢索它並查看您實際獲得的內容後,打印'$ retstr'遠程服務器。 –

回答

0

我不認爲json_decode停止爲你工作。這相當於服務器響應。你打印$ retstr以確保它不是空的或破碎的?

+0

謝謝你的回答, 這就是我發現的。 json從服務器斷開。我希望很快得到解決。 – jimtour

1

我使用JSON驗證器和網址似乎使用jsonList驗證URL這裏http://jsonlint.com/

我得到

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

如果URL提供了一個恰當的提供了一個無效JSON

試JSON字符串你的代碼應該工作。

+0

感謝您的幫助, 這就是我發現的。 json從服務器斷開。我希望很快得到解決。 – jimtour

+0

是的。您可以清理JSON,直到出現錯誤的地方,並在需要時使用它! –

0

works2結果正常。 也許json編碼的內容太大或(可能)包含不需要的字符或格式錯誤的序列。 看看默認的opendata輸出。它是xml格式,但下載時間很長。