JSON字符串转为java对象
2018-08-25 09:33
344 查看
在日常的java开发中,我们经常会需要接收到其它地方传过来的数据,格式也很多都是通过JSON格式来传递的。
所以我们经常需要将JSON格式的数据转换为我们所需要的数据格式,比如javabean形式。
对于只有一层的JSON格式的数据转换还是比较简单的。代码如下:
[code]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来实现转换了。代码如下:
[code]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到相对于的名字就行。
[code]String param = "{'leader':'headtearch','classrooms'[{'teacher':'litearch','student':'xiaowang', 'grades':[{'xiaowang':'A'}]}]}";
比如字符串是这样有三层,只需要加一个classMap.put("grades", Grade.class);即可。
如果用fastjson中的JSONObject对象就更简单了。看代码:
[code]String param = "{'leader':'headtearch','classrooms'[{'teacher':'litearch','student':'xiaowang'}]}"; JSONObject jsonObject = JSONObject.parseObject(param); School school = JSONObject.toJavaObject(param , School.class);
下面是实体类的一些代码。都是最简单的,一看就懂。我自己找这个也找了好一会,干脆写个最简单明了的。
[code]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 + "]"; } }
[code]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 + "]"; } }
阅读更多
相关文章推荐
- java将对象转为json字符串
- 自定义test之java json字符串转为java对象
- java对象、List转为json格式的数据(最后是json字符串格式,不是json对象)
- JAVA中如何将一个json形式的字符串转为json对象
- java对象、List转为json格式的数据
- JSON 字符串 与 java 对象的转换
- json字符串转为json对象-jQuery.parseJSON()
- Json字符串与Java对象互转(使用json-lib类库)
- GSON(JSON字符串转换成一个相等的Java对象)
- JSON解析类库之Jackson(1) --- Jackson类库学习, 生成与解析json数据,json字符串与Java对象互转
- JSON 字符串 与 java 对象的转换
- JSON 字符串 与 java 对象的转换
- java中字符串/java对象<-->JSON对象互转
- java对象转换为json字符串
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- java对象与JSON字符串互转jar,及其用法
- JSON 字符串 与 java 对象的转换
- java将JSON字符串转换为实体类对象,基于net.sf.json实现
- java封装对象转json字符串
- 关于JSON中字符串与java对象的相互转换问题