1

基本上,我正在向服务器发送一个请求,它的响应是"{"Result":"OK"}",我可以检索它,但是当我尝试在我的处理方法中使用响应时:

public void ProcessData(java.lang.String stream) 
    {
        JSONArray jsonArray; 
        try
        {
        jsonArray = new JSONArray(stream);
        for(int i=0; i<jsonArray.length(); i++)
        {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            String itemText = jsonObject.getString("text");
            Response = itemText;
        }
        }catch (JSONException e)
        {
            e.printStackTrace();
        }
    }

如果流是 "{"Result":"OK"}" 它在这条线上失败

jsonArray = new JSONArray(stream);

有任何想法吗?

4

4 回答 4

3

因为它不是一个 json 数组,它是一个 json 对象(以 开头{)..

jsonobject = new JSONObject(stream);
于 2013-04-15T11:19:53.410 回答
1

做错了你试图解析JsonObjectJsonArray 尝试

try {
        JSONObject jobj = new JSONObject(Respones);         
        String userid = jobj.getString("Result");               
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
于 2013-04-15T11:21:08.280 回答
1

jsonStr是一种JsonObject格式:

{name:value}

不是jSONArray格式:

[{name:value}]

你必须使用:

JSONObject obj=new JSONObject(stream)  

无法使用新的JSonArray(stream);

于 2013-04-15T11:21:43.197 回答
0

那里没有JSONArray,只有一个JSONObject

jsonArray = new JSONObject(stream);
于 2013-04-15T11:20:12.650 回答