1

私は自分のアプリでこのコードを実行しようとしています:

JSONObject json = jsonParser.makeHttpRequest(url_kickit_connect,
                    "POST", params);

            // check log cat for response
            Log.d("Create Response", json.toString());

            try {
                int response = json.getInt(TAG_RESPONSE);
                if (response == 0){
                Toast.makeText(getApplicationContext(), "email " +mail , Toast.LENGTH_SHORT).show();
                }

                }

                catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

戻り値として0を取得している間、0はこのコード内でjsonobjectとして解析される必要があります(上記では、標準のHttppostとStringbuilderを実行します)。

try {
            jObj = new JSONObject(json);
        } catch (JSONException e) {
            Log.e("JSON Parser", "Error parsing data " + e.toString());
        }

MySQL側(.php)から取得したJSON値:

else
{
    $response = 0;
    echo json_encode($response);
}

しかし、Logcatで次のエラーが発生します。

02-26 09:24:14.920: E/JSON Parser(619): Error parsing data org.json.JSONException: Value 0 of type java.lang.Integer cannot be converted to JSONObject

値またはデータ型を文字列などに変更しようとすると、エラーメッセージが通知された値またはデータ型に変更されます。どうすればこれを解決できますか?

4

2 に答える 2

3

0 は有効な json ではありません。{"response": 0}この場合、サーバーは次のようなものを返す必要があります

于 2013-02-26T09:46:08.363 に答える
-1

レスポンスを JSON として送信するには、これを php/mysql 側に追加します

else {
    //creates an array
    $result = array();
    //adds a json node for response
    $result['response'] = 0;
    //encode and echo out
    echo json_encode($result);
}
于 2015-02-12T09:58:29.407 に答える