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が無効な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

json_decode私はあなたのために働くのをやめたとは思わない。それはむしろサーバーの応答です。$ retstrを印刷して、空になったり壊れたりしていないことを確認しましたか?

于 2012-09-24T16:24:53.363 に答える
0

works2 の結果は問題ありません。json でエンコードされたコンテンツが大きすぎるか、(おそらく) 不要な文字や不正なシーケンスが含まれている可能性があります。デフォルトの opendata 出力を見てください。xml 形式ですが、ダウンロードに時間がかかります。

于 2012-09-24T17:12:14.440 に答える