Выход 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++;
}
Ваш пример не имеет смысла, так как вы пытаетесь получить доступ к 'msg' который ваш JSON не имеет (по крайней мере, тот, который вы показываете нам). Также ваш массив представляет 'solrReturn', а не' jsReturn', который держит ваш JSON. – Pshemo
Это не то, как вы должны писать массив JSon, тип возврата SOLr не предназначен для использования с объектами json, чтобы вернуть массив объектов json или определить список объектов, содержащий эти два параметра, или список подстановочных знаков. –
Я не могу воспроизвести эту проблему с вашим текущим кодом, что предполагает, что 'jsReturn' не может содержать структуру JSON, которую вы описываете. – Pshemo