Jackson学习一之对象与JSON互相转化
来源:互联网 发布:如何让mac休眠不断网 编辑:程序博客网 时间:2024/05/29 08:15
Jackson学习一之对象与JSON互相转化
- 博客分类:
- XML与JSON
JacksonJSON
简介:
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类型输出的,有必要的话,需要进行格式转换
0 0
- Jackson学习一之对象与JSON互相转化
- Jackson学习一之对象与JSON互相转化
- Jackson学习一之对象与JSON互相转化
- Jackson学习对象与JSON互相转化
- kson学习一之对象与JSON互相转化
- Jackson学习二之集合类对象与JSON互相转化
- Jackson(一):java对象与json字符串互相转换
- json字符串与json对象互相转化
- Java对象与Json对象的相互转化之Jackson实现方式
- 基于jackson的json与对象互相转换
- JS中json对象与json字符串互相转化
- Python之dict(或对象)与json之间的互相转化
- jackson 将对象,集合转化为json
- JSON解析类库之Jackson(1) --- Jackson类库学习, 生成与解析json数据,json字符串与Java对象互转
- Jackson实现json与java的转化
- JSON之Jackson(一)
- 字符串和JSON对象的互相转化
- Jackson 框架,JSON和java对象的互相转换
- 大端存储和小端存储
- centos7下使用yum安装mysql
- WdatePicker显示时分秒
- Java this 引用逃逸
- C/C++ struct 区别
- Jackson学习一之对象与JSON互相转化
- 动手写一个Caffe层:矩阵相乘Matmul
- Java 8十个lambda表达式案例
- IT-rsync--使用记录
- 8.2 喀迈拉(no.41~no.44)
- python网络服务wsgi及相关
- 【JZOJ 4709】 Matrix
- Android中Activity之间参数传递
- Spring与JMX集成