各位大侠们,小弟刚刚学习Android,碰到一个问题:Gson如何解析数组类型的Json数组类型类似:{
   "count":100,
   "page":1,
   "list":[{
      "title":"我的",
      "tel":"110"
   },
   {
      "title":"你的",
      "tel":"120"
   }]
}不知道这类Json用gson如何解析,指望各位大侠们指点,最好能有代码!谢谢大家了!

解决方案 »

  1.   

    无需要使用Gson    
     JSONObject jsonObject = new JSONObject(String);将此json数据变成一个对象。
    然后JSONArray jsonArray = jsonObject.getJSONArray("list");获得list里面的数据
     for(int i=0;i<jsonArray.length();i++)
        {
         JSONObject jsonOb = (JSONObject)jsonArray.opt(i); 
         int tel = jsonOb.getInt("tel");
        }
    循环读取中间的数据
      

  2.   

    String json = "{start: 0, pageCount: 2, dataList: [{\"STRPRODUCTCODE\":\"DWJ100\",\"STRVERSIONXZTEXT\":\"初始安装包\",\"STRPRODUCTNAME\":\"对外经贸查询系统\",\"STRVERSIONTYPE\":\"10\",\"STRVERSIONID\":\"V1                                      \",\"STRVERSIONCODE\":\"1.0.2.1018\",\"LINE_NUM\":1,\"STRVERSIONXZ\":\"10\",\"LIMIT\":1,\"NUMSHOWORDER\":1,\"STRVERSIONLOG\":\"修复1个bug,增加2个功能\",\"STRVERSIONTYPETEXT\":\"标准版\",\"DATRELEASEDATE\":\"2013-9-28 10:47:26\",\"STRVERSIONFY\":\"10万人民币\",\"STRSUPPORTOS\":\"Windows 2003/Windows 2008\",\"STRDELFLG\":\"0\"}" +
         ",{\"STRPRODUCTCODE\":\"DWJ100\",\"STRVERSIONXZTEXT\":\"初始安装包\",\"STRPRODUCTNAME\":\"对外经贸查询系统\",\"STRVERSIONTYPE\":\"10\",\"STRVERSIONID\":\"V1                                      \",\"STRVERSIONCODE\":\"1.0.2.1018\",\"LINE_NUM\":1,\"STRVERSIONXZ\":\"10\",\"LIMIT\":1,\"NUMSHOWORDER\":1,\"STRVERSIONLOG\":\"修复1个bug,增加2个功能\",\"STRVERSIONTYPETEXT\":\"标准版\",\"DATRELEASEDATE\":\"2013-9-28 10:47:26\",\"STRVERSIONFY\":\"10万人民币\",\"STRSUPPORTOS\":\"Windows 2003/Windows 2008\",\"STRDELFLG\":\"0\"}" +
         "]}";
         Gson gson = new Gson();
         JsonParser parser = new JsonParser();
         List<Map<String,String>> list = new ArrayList<Map<String,String>>();
         JsonObject jsonObject = parser.parse(json).getAsJsonObject();
         JsonArray jsonArray = jsonObject.getAsJsonArray("dataList");
            Type type = new TypeToken<Map<String,String>>() {}.getType();
         for (int i = 0; i < jsonArray.size(); i++) {
                JsonElement el = jsonArray.get(i);
                Map<String,String> tmp = gson.fromJson(el, type);
                list.add(tmp);
                System.out.println(tmp.get("STRPRODUCTCODE"));
            }
         jsonObject.remove("dataList");
         jsonObject.add("dataList", parser.parse(gson.toJson(list)).getAsJsonArray());
         System.out.println(gson.toJson(jsonObject));