0

我对 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);
    }

日志猫是:

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

谢谢

4

3 回答 3

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");
于 2013-01-03T16:07:55.227 回答
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);
    }
于 2013-01-03T16:00:58.003 回答
0

猜猜问题出在您的 php 代码上,尝试更改您的 php 代码,如下所示

$response = array("code" => $e['code'], "message" =>$e['message']);
echo json_encode($response);
于 2013-01-03T16:23:39.140 回答