0

我有一个来自 API 服务的响应字符串,如下所示:

{"id":"login","status":"true"}

这是解析响应字符串以从键“状态”获取值的方法

                    JSONObject jsonObj = null;
    try{
        jsonObj = new JSONObject(responseString);
    }
    catch(JSONException e){
        e.printStackTrace();


    }


        JSONArray innerJsonArray = null;
        try {
            innerJsonArray = jsonObj.getJSONArray("status");
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        JSONObject jsonObject = null;
        try {
            jsonObject = innerJsonArray.getJSONObject(0);
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            System.out.println(jsonObject.getString("status"));
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

我有错误“org.json.JSONArray 无法转换为 JSONObject”

任何人都可以给我建议吗?

4

3 回答 3

0

你在哪一行得到异常?无论如何,你应该使用

jsonObj =JSONObject.fromObject(responseString);

于 2013-03-27T14:40:23.010 回答
0
JSONObject jsonObj = null;
try{
    jsonObj = new JSONObject(responseString);
    System.out.println(jsonObj.getString("status"));
}
catch(JSONException e){
    e.printStackTrace();
}

您无需为任何其他阵列而烦恼。

于 2013-03-27T14:43:01.633 回答
0

请尝试下面的代码段。试试这个链接以获得关于解析 JSON 响应的更好的知识。

JSONObject jObj;
        try {
            jObj = new JSONObject(responseString);
            Log.i("id==", jObj.getString("id"));
            Log.i("status==", jObj.getString("status"));
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
于 2013-03-27T14:51:11.733 回答