我正在尝试为我的应用程序执行此代码:
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
如果我尝试更改值,或者将数据类型更改为字符串等。错误消息只会更改为告知值或数据类型。 我该如何解决这个问题?
答案 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);
}