json数组转list,list中的对象属性中,还有其它对象

墨蓝 2022-03-28 02:22 604阅读 0赞

将json数组转成list,list中的对象,还包含有其它对象

(一)如下实体类:所有实体省略 get() 、set()方法

1、学校类

  1. public class School{
  2. private String name; //学校名
  3. private String pos; //学校地址
  4. private List<Classes> classes; //学校里的班级
  5. }

2、班级类:

  1. public class Classes{
  2. private String name; //班级名
  3. private String number; //班级人数
  4. }

(二)如下json字符串(仅是举例,不用太关心数据细节)

{
“school_list”: [{
“name”: “北京大学”,
“pos”: “北京”,
“classes”: [{
“name”: “生物工程2010级一班”
“number”: 30
},
{
“name”: “软件工程2010级一班”
“number”: 30
},
]
},
{
“name”: “四川大学”,
“pos”: “成都”,
“classes”: [{
“name”: “互联网2010级一班”
“number”: 35
},
{
“name”: “计科2010级一班”
“number”: 15
},
]
}
]
}

(三)、json转换

  1. //上面的json字符串
  2. String jsonStr="";
  3. //转成json对象(com.alibaba.fastjson.JSON.parseObject)
  4. JSONObject jsonObj=JSONObject.parseObject(jsonStr);
  5. //获取json对象中,键school_list的值
  6. String schoolListStr = jsonObj.getString("school_list");
  7. //将json字符串转成json数组(net.sf.json.JSONArray.fromObject)
  8. JSONArray jsonArr = JSONArray.fromObject(schoolListStr);
  9. @SuppressWarnings("rawtypes")
  10. Map<String, Class> classMap = new HashMap<String, Class>();
  11. //将json数组转成list过程中,将json对象中的键为classes的值也转换成指定对象
  12. classMap.put("classes", Classes.class);
  13. //设置json转换配置(net.sf.json.JSONArray.toList)
  14. JsonConfig jsonConfig = new JsonConfig();
  15. jsonConfig.setClassMap(classMap);
  16. //转换(net.sf.json.JSONArray.toList)
  17. @SuppressWarnings("unchecked")
  18. List<School> vessel_list = JSONArray.toList(jsonArr, new School(),jsonConfig);

发表评论

表情:
评论列表 (有 0 条评论,604人围观)

还没有评论,来说两句吧...

相关阅读