大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
在日常的java开发中,我们经常会需要接收到其它地方传过来的数据,格式也很多都是通过JSON格式来传递的。
所以我们经常需要将JSON格式的数据转换为我们所需要的数据格式,比如javabean形式。
对于只有一层的JSON格式的数据转换还是比较简单的。代码如下:
String param = "{'leader':'headtearch'}";
JSONObject jsonObject = JSONObject.fromObject(param);
School school = (School) JSONObject.toBean(jsonObject, School.class);
System.out.println(school.toString());
但是我们经常会碰到json格式中会包含有list数据,会有两层乃至三层或者更多。如果还是通过上面一种方法来转换的话,你会发现她转出来的list对象不是你想要的类型,而是MorphDynaBean类型,而且取数据也不好取。这时就需要借助到map来实现转换了。代码如下:
String param = "{'leader':'headtearch','classrooms'[{'teacher':'litearch','student':'xiaowang'}]}";
JSONObject jsonObject = JSONObject.fromObject(param);
Map<String,Class> classMap = new HashMap<String,Class>();
classMap.put("classrooms", ClassRoom.class);
School school = (School) JSONObject.toBean(jsonObject, School.class, classMap);
System.out.println(school.toString());
如果有三层或者更多层的话,只需要在classMap中put到相对于的名字就行。
String param = "{'leader':'headtearch','classrooms'[{'teacher':'litearch','student':'xiaowang',
'grades':[{'xiaowang':'A'}]}]}";
比如字符串是这样有三层,只需要加一个classMap.put(“grades”, Grade.class);即可。
如果用fastjson中的JSONObject对象就更简单了。看代码:
String param = "{'leader':'headtearch','classrooms'[{'teacher':'litearch','student':'xiaowang'}]}";
JSONObject jsonObject = JSONObject.parseObject(param);
School school = JSONObject.toJavaObject(param , School.class);
下面是实体类的一些代码。都是最简单的,一看就懂。我自己找这个也找了好一会,干脆写个最简单明了的。
public class School {
private String leader;
private List<ClassRoom> classrooms = new ArrayList<ClassRoom>();
public String getLeader() {
return leader;
}
public void setLeader(String leader) {
this.leader = leader;
}
public List<ClassRoom> getClassrooms() {
return classrooms;
}
public void setClassrooms(List<ClassRoom> classrooms) {
this.classrooms = classrooms;
}
public String toString() {
return "School [leader=" + leader + ", classrooms=" + classrooms + "]";
}
}
public class ClassRoom {
private String teacher;
private String student;
public String getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
public String getStudent() {
return student;
}
public void setStudent(String student) {
this.student = student;
}
public String toString() {
return "ClassRoom [teacher=" + teacher + ", student=" + student + "]";
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185032.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...