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 端获得的 JSON 值(.php):

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 回答