{"state":"1","value":"2","datalist":[{"id":"86","name":
"图片中的\u003cfont color=FF0000\u003e红色\u003c/font\u003e数字是多少?"
,"desc":"肯德基","content":"30","icon":
"http://admin.trypay.cn/Upload/Images/Gift/20120626170657487_s.png"
,"date":"2012/6/26 17:26:18"},{"id":"87","name":
"图片中的\u003cfont color=008000\u003e绿色\u003c/font\u003e数字是多少?"
,"desc":"麦当劳","content":"30","icon":
"http://admin.trypay.cn/Upload/Images/Gift/20120626170813086_s.jpg"
,"date":"2012/6/26 17:26:12"}]}
这个json字符串包含数组的“datalist”是数组
解析上边的json格式对应如下
JSONTokener jsonParser = new JSONTokener(contenttring);
JSONObject jsonObject = (JSONObject) jsonParser.nextValue();
String state = jsonObject.getString("state");
String value = jsonObject.getString("value");
hashMap.put("state", state);
hashMap.put("value", value);
String datalist = jsonObject.getString("datalist");
Log.d(TAG, "datalist--->" + datalist);
JSONArray array = new JSONArray(datalist);
list = new ArrayList<App>();
for (int i = 0; i < array.length(); i++) {
JSONObject item = array.getJSONObject(i);
String id = item.getString("id");
String name = item.getString("name");
String desc = item.getString("desc");
String content = item.getString("content");
String icon = item.getString("icon");
String date = item.getString("date");
list.add(new App(id, name, desc, content, icon,
date));//App 是自己定义的实体类
}
}
hashMap.put("datalist", list);
{"CommonResponse":{"status":0,"desc":""},"total":1,"parseTime":0,"searchTime":0,"returnCount":1,"records":[{"MODIFY_TIME":"2013-12-05 11:36:35.651","CONTRIBUTORS":"admin","nodeTitle":"广电产品技术","VISIT_TIMES":"162","nodeId":"DYR_KNOWLEDGE_TREE_BORADCAST_TECH","AUTHOR":"admin ef4e1c86-6595-4302-9590-076c3bf19bb1 f5e44a88-772d-4f62-99a7-4dddfbc27742 535c6b3d-c667-450d-a01e-183a1e3aaa74","IndexDBName":"DYRKB_SEARCHINDEX","DocClassName":"ARTICLE"}]}
JSONTokener jsonParser = new JSONTokener(result);
JSONObject jsonObject = (JSONObject) jsonParser.nextValue();
String crStr = jsonObject.getString("CommonResponse");
JSONObject crObj = JSONObject.fromObject(crStr); //size = 2
int status = crObj.getInt("status");
List<KnowledgeTree> treeList = new LinkedList<KnowledgeTree>();
if (status == 0) {
String records = jsonObject.getString("records");
JSONArray json = JSONArray.fromObject(records);
treeList = (List<KnowledgeTree>) JSONArray.toCollection(json, KnowledgeTree.class);
} else {
crObj.getString("desc"); //todo
return null;
}