Android / php Jsonobject错误解析

时间:2013-01-03 15:56:03

标签: php android json parsing

我的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);

感谢

3 个答案:

答案 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);