array type something like:
{
"count": 100,
"page": 1,
"list": [{
"title": " I "
"tel": "110"
},
{
"title": " your" ,
"tel": "120"
}]
}
I do not know how to resolve this type of Json with gson , expect heroes pointing, it is best to have the code ! Thank you !
------ Solution ------------------------------------ --------
no need to use Gson
JSONObject jsonObject = new JSONObject (String); this json data into an object.
then JSONArray jsonArray = jsonObject.getJSONArray ("list"); obtain list data inside
for (int i = 0; i
JSONObject jsonOb = (JSONObject) jsonArray.opt (i);
int tel = jsonOb.getInt ("tel");
}
loop reads the intermediate data
------ eference ------------------------------ ---------
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));
没有评论:
发表评论