简介:

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 + "]";  }  }

班级类:

Java代码

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;  }  }

测试代码:

Java代码

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);  }  }

运行结果:

Text代码

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类型输出的,有必要的话,需要进行格式转换

利用ObjectMapper进行对象与JSON互相转化相关推荐

  1. Java基础/利用fastjson序列化对象为JSON

    利用fastjson序列化对象为JSON 参考博客:http://blog.csdn.net/zeuskingzb/article/details/17468079 Step1:定义实体类 //用户类 ...

  2. Jackson学习二之集合类对象与JSON互相转化--转载

    原文地址:http://lijingshou.iteye.com/blog/2003059 本篇主要演示如何使用Jackson对List, Map和数组与JSON互相转换. package com.j ...

  3. Java系列之:ObjectMapper实现对象转化为Json、集合转化为Json、Json转化为对象、Json转化为JsonNode、JsonNode转化为Json字符串

    Java系列之:ObjectMapper实现对象转化为Json.集合转化为Json.Json转化为对象.Json转化为JsonNode.JsonNode转化为Json字符串 一.创建类Dataset ...

  4. 将String类型的Json字符串转化对象或对象数组

    方法一:jsckson的ObjectMapper类 String jsonString = "";//json类型的字符串ObjectMapper mapper = new Obj ...

  5. Python之dict(或对象)与json之间的互相转化

    在Python语言中,json数据与dict字典以及对象之间的转化,是必不可少的操作. 在Python中自带json库.通过import json导入. 在json模块有2个方法, loads():将 ...

  6. Json对象与Json字符串的转化、JSON字符串与Java对象的转换

    一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...

  7. python json dict对象使用_Python中:dict(或对象)与json之间的互相转化

    在Python语言中,json数据与dict字典以及对象之间的转化,是必不可少的操做.python 在Python中自带json库.经过import json导入.json 在json模块有2个方法, ...

  8. json java typeof_Json对象与Json字符串的转化、JSON字符串与Java对象的转换

    一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...

  9. java fastjson vector转为json_java对象与Json字符串之间的转化(fastjson)

    public class test { public static void main(string[] args) { // 实现java对象与json字符串之间的转化 // 1. person对象 ...

  10. python把dict转成json_Python dict(或对象)与json之间的互相转化

    Python dict(或对象)与json之间的互相转化 原文转载自 1.JSON:JavaScript 对象表示法,是轻量级的文本数据交换格式,独立于语言,平台 2.JSON 语法规则 数据在名称/ ...

最新文章

  1. 重磅!GitHub发布开源负载均衡组件GLB
  2. 日志 查看匹配内容的前后几行
  3. 如何基于Weex实现创新交互体验?手淘开源技术BindingX案例解析
  4. CSS样式特点及优先级
  5. linux 磁盘查看方式
  6. mysql5.7.11无法启动_macos - mysql 5.7.11 启动报错
  7. Springboot将mybatis替换为mybatis-plus
  8. 《腾讯Android自动化测试实战》— Android 书籍
  9. Git - 教程(廖雪峰)
  10. 制作U盘PE启动盘安装Windows系统
  11. global shutter和rolling shutter,全局快门与卷帘式快门
  12. 太阳的后裔--OST.3 This love这份爱
  13. zbrush 制作护腕1 -- 基础模型
  14. linux efi启动,在linux环境中利用efibootmgr管理efi启动项
  15. MySQL 数据库基础
  16. 《一步一步看源码:Nacos》框架源码系列之一(其1,配置服务源码)
  17. 战略成本管理——新的成本管理(一)
  18. New Bing/电脑端/ 免梯子 插件教程
  19. 【Python刷题篇】Python从0到入门4|字典复习、函数入门、综合实践
  20. 使用java获得网页数据并保存到mysql数据库(oracle大致同理)

热门文章

  1. 使用MS Test进行单元测试
  2. ...为他们的产品痴迷,不是有兴趣,不是了解,而是痴迷
  3. flash xml+textArea组件+CSS
  4. 【转贴】蚂蚁和大象的恩怨
  5. JAVA语言基础-面向对象(方法重写概述及其应用)
  6. ThreadPoolExecutor运转机制详解
  7. KVM虚拟化相关知识简介(脑补)
  8. Hibernate级联删除时:Cannot delete or update a parent row: a foreign key constraint fails异常...
  9. 线程控制之线程和信号
  10. 步步为营VS 2008 + .NET 3.5(2) - VS 2008新特性之JavaScript Intellisense and Debugging