我的jsonObject有问题。
在Android应用程序中我有:
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
Log.e("JSON Parser2", "json: "+json);
}
logcat是:
01-03 16:50:09.239: E/JSON Parser(17447): Error parsing data org.json.JSONException: Value [] of type org.json.JSONArray cannot be converted to JSONObject
01-03 16:50:09.239: E/JSON Parser2(17447): json: [][][]{"code":0,"message":"Segnalazione inviata correttamente"}
在php中我有:
$response = array();
$response["code"] = $e['code'];
$response["message"] = $e['message'];
echo json_encode($response);
感谢
答案 0 :(得分:1)
将您的PHP JsonObejct创建代码更改为:
echo json_encode($response, JSON_FORCE_OBJECT);
现在您可以将当前的json字符串解析为:
String str_final_json=json.replace("{}{}{}","");
// convert string to jsonObject
JSONObject jObj = new JSONObject(str_final_json);
// get code from json object
String str_code=jObj.getString("code");
// get message from json object
String str_message=jObj.getString("message");
答案 1 :(得分:0)
如果您的顶级对象是数组,请使用 JSONArray 。
try {
jArr = new JSONArray(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
Log.e("JSON Parser2", "json: "+json);
}
答案 2 :(得分:0)
猜猜问题是你的php代码尝试改变你的PHP代码,如下所示
$response = array("code" => $e['code'], "message" =>$e['message']);
echo json_encode($response);