org.json.JSONException:JSONArray [0]不是JSONObject
问题描述:
String jsreturn: [{"type":1, "msg":"ERROR"}]
的输出。org.json.JSONException:JSONArray [0]不是JSONObject
我试图获取msg
键的错误内容。我通过将字符串返回转换为数组来实现这一点。但是,在下面的代码中,我在每行旁边注释了一些错误。 任何见解?
Vector<ClsReturn> ret = null;
ret = ds.id(collection, "fs",in_uri);
String jsReturn = ret.toString();
JSONObject myJsonObject = new JSONObject(ret);
JSONArray array = new JSONArray(jsReturn);
int i = 0;
while(i < array.length()){
myJsonObject = array.getJSONObject(i); //org.json.JSONException: JSONArray[0] is not a JSONObject.
System.out.println(myJsonObject.getString("msg"));
i++;
}
答
我不知道如果我明白你的问题,我觉得很容易,这个工程:
String jsReturn =" [{\"type\":1, \"txt\":\"ERROR\"}]";
JSONArray array = new JSONArray(jsReturn);
int i = 0;
JSONObject myJsonObject = new JSONObject();
while(i < array.length()){
myJsonObject = array.getJSONObject(i);
System.out.println(myJsonObject.getString("txt"));
i++;
}
你举的例子并没有真正意义的,因为你是在试图访问'msg'这你的JSON没有(至少是你向我们展示的那个)。你的数组也代表'solrReturn',而不是'jsReturn',它保存着你的JSON。 – Pshemo
这不是你应该如何编写JSon数组,SOLr返回类型不打算与json对象一起使用,以便返回json对象数组,或者定义包含这两个参数的对象列表,或者存在通配符列表。 –
我无法用您当前的代码重现此问题,这表明'jsReturn'可能不包含您描述的JSON结构。 – Pshemo