1

http://jsonlint.com/で検証し、jquery $.getJSON(); を使用して Web アプリケーションで使用する JSON API を yii で正常に作成しました。

今まではすべて正常に機能していました

しかし、同じ URL を使用して Android アプリケーションで同じ API にアクセスすると、エラーが発生します。

07-05 00:57:45.548: E/JSON Parser(28866): Error parsing data org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject

もう一度試してみて、yii によって生成されたすべての JSON をファイルにコピーし、mydata.json という名前を付けて、Android アプリからこの JSON を取得しようとしましたが、すべて正常に動作しています

そのため、yii に何か問題がある可能性があると結論付けましたが、API 生成の方法が

public function actionMycontroller{
    header('Content-type: application/json');
    header('Access-Control-Allow-Origin: *');
            $json="    all my json generation code";
            echo json_encode($json);
        Yii::app()->end();  
 }

エラーをデバッグするにはどうすればよいですか?

4

1 に答える 1

3

<!DOCTYPEサービスが純粋な json を出力していないことを示します。おそらくhtmlラッパーにラップされています。たとえば、実際に持っています

<!DOCTYPE ...>
<html>
<body>
...json goes here...
</body>
</html>

つまり、コントローラーは、出力を取得する必要がある json 応答だけでなく、本格的な HTML ページを吐き出そうとしています。

于 2013-07-04T19:53:14.583 に答える