未从流中创建JSON数组

时间:2013-04-15 11:17:53

标签: java json

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

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 个答案:

答案 0 :(得分:3)

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

jsonobject = new JSONObject(stream);

答案 1 :(得分:1)

错误地尝试将JsonObject解析为JsonArray尝试

try {
        JSONObject jobj = new JSONObject(Respones);         
        String userid = jobj.getString("Result");               
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

答案 2 :(得分:1)

jsonStr格式为JsonObject

{name:value}

不是jSONArray格式:

[{name:value}]

你必须使用:

JSONObject obj=new JSONObject(stream)  

无法使用新的JSonArray(stream);

答案 3 :(得分:0)

那里没有JSONArray,只有JSONObject

jsonArray = new JSONObject(stream);