Adnroid解析Json数组DEMO实例
需要用到的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();
}