Adnroid解析Json数组DEMO实例


在线生成JAVA实体类工具


需要用到的Json解析库Gson请自行解决


下面我们来看下具体用法

1、使用Android中的JSONObject和JSONArray解析json数据

String strJson = "{\"UrlName\":[{\"name\":\"jsons.cn\",\"age\":2}, {\"name\":\"Json工具\",\"age\":2}]}";
        try {
            JSONObject jo = new JSONObject(strJson);
            JSONArray jsonArray = (JSONArray) jo.get("UrlName");
            for (int i = 0; i < jsonArray.length(); ++i) {
                JSONObject o = (JSONObject) jsonArray.get(i);
                System.out.println("name:" + o.getString("name") + "," + "age:"
                        + o.getInt("age"));
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
2、使用Gson中的JsonReader解析json数据

try {
            String string = "{\"Root\":1, \"UrlName\":[{\"name\":\"Jsons.cn\", \"age\":2},{\"name\":\"Json解析\", \"age\":2}]}";
            StringReader sr = new StringReader(string);
            JsonReader jr = new JsonReader(sr);
            jr.beginObject();
            if (jr.nextName().equals("Root")) {
                System.out.println("最高级别: " + jr.nextString());
                if (jr.nextName().equals("UrlName")) {
                    jr.beginArray();
                    while (jr.hasNext()) {
                        jr.beginObject();
                        if (jr.nextName().equals("name"))
                            System.out.print("姓名:" + jr.nextString());
                        if (jr.nextName().equals("age")) {
                            System.out.println(" , 年龄:" + jr.nextInt());
                        }
                        jr.endObject();
                    }
                    jr.endArray();
                }
            }
            jr.endObject();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }