Java.lang.Integer类型的值0无法转换为JSONObject

时间:2013-02-26 09:38:01

标签: java android json

我正在尝试为我的应用程序执行此代码:

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

如果我尝试更改值,或者将数据类型更改为字符串等。错误消息只会更改为告知值或数据类型。 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

0不是有效的json。对于这种情况,服务器应返回类似{"response": 0}的内容

答案 1 :(得分:-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);
}