简介:
Jackson是一个流行的基于Java的JSON处理框架
官方wiki:http://wiki.fasterxml.com/JacksonInFiveMinutes
官方文档:http://wiki.fasterxml.com/JacksonDocumentation
学习参考: Json转换利器Gson之实例 系列,顺便也学习一下GSON
本篇简介如何使用Jackson进行Java对象与JSON的互相转换
新建基本Student类:
package com.jingshou.pojo; import java.util.Date; public class Student { private int id; private String name; private Date birthDay; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getBirthDay() { return birthDay; } public void setBirthDay(Date birthDay) { this.birthDay = birthDay; } @Override public String toString() { return "Student [birthDay=" + birthDay + ", id=" + id + ", name=" + name + "]"; } }
班级类:
package com.jingshou.pojo; import java.util.List; public class Class { private String cname; private List<Student> members; public String getCname() { return cname; } public void setCname(String cname) { this.cname = cname; } public List<Student> getMembers() { return members; } public void setMembers(List<Student> members) { this.members = members; } public String toString(){ return "The Class Name is: " + cname + " " + "The members are: " + members; } }
测试代码:
package com.jingshou.jackson; import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.fasterxml.jackson.databind.ObjectMapper; import com.jingshou.pojo.Class; import com.jingshou.pojo.Student; public class JacksonTest1 { public static void main(String[] args) throws IOException { Student student1 = new Student(); student1.setId(5237); student1.setName("jingshou"); student1.setBirthDay(new Date()); ObjectMapper mapper = new ObjectMapper(); // Convert object to JSON string String Json = mapper.writeValueAsString(student1); System.out.println("Change Object to JSON String: " + Json); // Convert Json string to Object Student student2 = mapper.readValue(Json, Student.class); System.out.println(student2); // Create a student list add it to Bj Student student3 = new Student(); student3.setId(5117); student3.setName("saiya"); student3.setBirthDay(new Date()); List<Student> stuList = new ArrayList<Student>(); stuList.add(student1); stuList.add(student3); Class bj = new Class(); bj.setCname("五年二班"); bj.setMembers(stuList); String json2 = mapper.writeValueAsString(bj); System.out.println("The JSON from Class is: " + json2); Class bj2 = mapper.readValue(json2, Class.class); System.out.println(bj2); } }
运行结果:
Change Object to JSON String: {"id":5237,"name":"jingshou","birthDay":1389513906622} Student [birthDay=Sun Jan 12 16:05:06 CST 2014, id=5237, name=jingshou] The JSON from Class is: {"cname":"五年二班","members":[{"id":5237,"name":"jingshou","birthDay":1389513906622},{"id":5117,"name":"saiya","birthDay":1389513906859}]} The Class Name is: 五年二班 The members are: [Student [birthDay=Sun Jan 12 16:05:06 CST 2014, id=5237, name=jingshou], Student [birthDay=Sun Jan 12 16:05:06 CST 2014, id=5117, name=saiya]]
小结:
- 转换的关键就是ObjectMapper
- 在使用ObjectMapper对象readValue或者writeValue的时候,JSON可以以字符串的形式传入,也可以以文件的形式传入,官方的例子是让将JSON保存在文件中
- 明显JSON字串中的key与Java类中的field名字应该要相同
- Student类如果有自定义构造函数的时候,进行JSON->对象转换会出错,接下去再研究这个问题..
- Date域是以long类型输出的,有必要的话,需要进行格式转换
本文出自"lijingshou"博客,请务必保留此出处http://lijingshou.iteye.com/blog/2003020
相关推荐
使用jackson完成json与java对象的互相转换实例
webservice接口开发中,厂家提供的json格式,json与obj的相互转化,相信大家都很熟悉,考虑到厂家提供的接口会随着版本的不同,字段也会相应的增加,这个时候进行对象的转换就不能保证json与obj转换是一一对应的,...
Jackson为Java对象和Json的转换提供了有效的手段,是Web开发不可缺少的工具
Java中,使用jackson完成json与Java对象互转
json 所需要的jackson-annotations-2.4.0.jar,jackson-core-2.4.2.jar, jackson-databind-2.4.2.jar,jackson-mapper-asl-1.9.11.jar
jackson 对象转json,json转对象,json转集合,json转map,jackson忽略字段,等等
jackson json jackson json jackson jsonjackson jsonjackson jsonjackson jsonjackson jsonjackson jsonjackson json
json格式与java类对象相互转换。json格式转换成java类对象,List,Map。类对象转换成json。
jackson 对象json字符串数组集合互转 各jar包 希望能用到。
答:将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象] 从Java对象生成JSON的过程称为 [序列化Java对象到JSON] 为什么用它? 答:我数据库中的主键是使用雪花算法生成的,就是因为用id的位数太多,导致在...
赠送jar包:jackson-jaxrs-json-provider-2.7.8.jar; 赠送原API文档:jackson-jaxrs-json-provider-2.7.8-javadoc.jar; 赠送源代码:jackson-jaxrs-json-provider-2.7.8-sources.jar; 赠送Maven依赖信息文件:...
jackson是一款非常强大,而且便捷的java工具 , 他可以将java对象转换为json , 配合ajax使用
主要介绍了使用Jackson来实现Java对象与JSON的互相转换的教程,文中罗列了3中Jackson的使用方式,需要的朋友可以参考下
JSON与JAVA对象之间的转换 少量数据使用GSON 大量数据使用jackson
赠送jar包:json4s-jackson_2.11-3.2.11.jar; 赠送原API文档:json4s-jackson_2.11-3.2.11-javadoc.jar; 赠送源代码:json4s-jackson_2.11-3.2.11-sources.jar; 赠送Maven依赖信息文件:json4s-jackson_2.11-...
赠送jar包:jackson-jaxrs-json-provider-2.7.8.jar; 赠送原API文档:jackson-jaxrs-json-provider-2.7.8-javadoc.jar; 赠送源代码:jackson-jaxrs-json-provider-2.7.8-sources.jar; 赠送Maven依赖信息文件:...
Json 数据格式化 jackson
NULL 博文链接:https://bijian1013.iteye.com/blog/2310135
《让Jackson JSON生成的数据包含的中文以unicode方式编码》一文的配套代码。文章地址:http://blog.csdn.net/chaijunkun/article/details/8257209
Jackson JSON 三个jar包,Jackson JSON是一个非常方便强大的JSON框架,使用其让我们的开发游刃有余。