3 回答

TA贡献1862条经验 获得超7个赞
首先获取 JSONObject,然后获取其中的数组
JSONObject jsonObject = new JSONObject(jsonString);
String objectIme = jsonObject.getString("ime");
String prezime = jsonObject.getString("prezime");
上面的行将获取整个对象,从此对象中,您可以获得其他对象以及数组test1和test2,如下所示,然后您可以像您一样循环该数组
JSONArray jArray1 = new JSONArray(jsonObject.getJSONArray("test1"));
JSONArray jArray2 = new JSONArray(jsonObject.getJSONArray("test2"));
for (int i = 0; i < jArray1 .length(); i++) {
JSON jsonObj = new JSON();
JSONObject mojObj = jArray1.getJSONObject(i);
jsonObj.setIme(mojObj.getString(KEY_NAME));
}

TA贡献1817条经验 获得超6个赞
你解析了错误的 json。你的 json 以 jsonObject 而不是 jsonArray 开头。因此,在您的情况下,您必须像这样开始(假设您的onPostExecute方法的结果变量具有json字符串)
JSONObject mojNiz = new JSONObject(result);
现在,从上面的对象中,您可以获取json数组mojNiz

TA贡献2016条经验 获得超9个赞
String s = "{\"ime\":\"Alen\",\"prezime\":\"Osmanagi\\u0107\",\"test\":[1,2,3,4,5],\"test2\":{\"1\":\"test\",\"2\":\"555\",\"test\":\"888\",\"om\":\"hasd\"}}";
try {
JSONObject jsonObject = new JSONObject(s);
jsonObject.getString("ime");
jsonObject.getString("prezime");
JSONArray jsonArray = jsonObject.getJSONArray("test");
List<Integer> list = new ArrayList<>();
for (int i = 0; i < jsonArray.length(); i++) {
list.add((Integer) jsonArray.get(i));
}
JSONObject testObject = jsonObject.getJSONObject("test2");
testObject.getString("1");
testObject.getString("2");
} catch (JSONException e) {
e.printStackTrace();
}
添加回答
举报