Android JSONArray to ArrayList

前端 未结 2 1218
再見小時候
再見小時候 2021-01-16 01:57

I am trying to parse a JSONArray into and ArrayList in my android app. The PHP script correctly retuns the expected results, however the Java fails with a null pointer excep

2条回答
  •  孤独总比滥情好
    2021-01-16 02:06

    Use custom method which convert your JSONArray to List instead of iterate and build List.

    How to call :

    try {
         ArrayList> list = (ArrayList>) toList(json);
    } catch (JSONException e) {
         e.printStackTrace();
    }
    

    Convert json array to List :

    private List toList(JSONArray array) throws JSONException {
        List list = new ArrayList();
        int size = array.length();
        for (int i = 0; i < size; i++) {
            list.add(fromJson(array.get(i)));
        }
        return list;
    }
    

    Convert json to Object :

    private Object fromJson(Object json) throws JSONException {
        if (json == JSONObject.NULL) {
            return null;
        } else if (json instanceof JSONObject) {
            return jsonToMap((JSONObject) json);
        } else if (json instanceof JSONArray) {
            return toList((JSONArray) json);
        } else {
            return json;
        }
    }
    

    Convert json to map :

    public Map jsonToMap(JSONObject object) throws JSONException {
        Map map = new HashMap();
        Iterator keys = object.keys();
        while (keys.hasNext()) {
            String key = (String) keys.next();
            map.put(key, fromJson(object.get(key)).toString());
        }
        return map;
    }
    

提交回复
热议问题