fastJson解析动态key
{
"2018年10月25日": [{
"note": "第1条",
"date": "2018年10月25日",
"time": "10:00:00"
}],
"2018年10月26日": [{
"note": "第2条",
"date": "2018年10月26日",
"time": "12:00:00"
}]
}
这段Json数据,日期动态增加。
使用fastJson解析
// 使用JSONObject处理
JSONObject jsonObject = JSON.parseObject(s);
// 放到Set集合中
Set<String> keySet = jsonObject.keySet();
// 使用Iterator迭代器
Iterator iterator = keySet.iterator();
// Json数据2层,使用嵌套List
List<List<ControlLogInfo>> lists = new ArrayList<>();
// 检查序列中是否还有元素
while (iterator.hasNext()) {
String key = (String) iterator.next();
List objectList = (List) jsonObject.get(key);
List<ControlLogInfo> controlLogInfoList = new ArrayList<>();
Gson gson = new Gson();
// 遍历数据
for (Object o : objectList) {
String jsonStr = gson.toJson(o);
ControlLogInfo controlLogInfo = gson.fromJson(jsonStr, ControlLogInfo.class);
controlLogInfoList.add(controlLogInfo);
}
lists.add(controlLogInfoList);
}
// 数据2层,使用双重for循环
for (List<ControlLogInfo> list : lists) {
for (ControlLogInfo controlLogInfo : list) {
// 处理显示
}
}