王骏的博客
编程、网络技术点滴...

公告

逐渐将VC知识库的博客迁移到这里!

随笔分类

随笔档案

相册

最新评论

阅读排行榜

评论排行榜

程序员博客   首页  新随笔  订阅  管理  登录 
 
JO2000 阅读(245) 评论(0)
本文根据:https://javaarm.com/faces/display.xhtml?tid=3828 改写
 

Jackson fasterxml和codehaus的区别:


他们是Jackson的两大分支、也是两个版本的不同包名。Jackson从2.0开始改用新的包名fasterxml;1.x版本的包名是codehaus。除了包名不同,他们的Maven artifact id也不同。1.x版本现在只提供bug-fix,而2.x版本还在不断开发和发布中。如果是新项目,建议直接用2x,即fasterxml jackson。

P.S.
Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。

三个主要的模块:
jackson-core:核心包
jackson-annotations:注解包
jackson-databind:数据绑定包
jackson-databind需要引用另外两个包,所以如果项目中需要jackson-databind,则只需要加入它的dependency就行了,其他两个会自动引入:
<dependency>
<groupId>com.fasterxml.jackson.
core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.3</version>
</dependency>

 

概述

Jackson是一个用于将JSON格式数据 和 Java Bean进行映射的第三方软件库。

官方地址:https://github.com/FasterXML/jackson

Jackson由多个子模块构成:
  • Streaming (docs) ("jackson-core") 定义底层的数据流API,包括JSON规范实现
  • Annotations (docs) ("jackson-annotations") 包含标准的Jackson注解
  • Databind (docs) ("jackson-databind") 基于streaming 包实现了数据绑定 (以及对象序列化功能) 支持;它依赖 streaming 和 annotations 包
对JAXB的支持:Jackson JAX-RS Providers

官方源码下载:
二进制下载
javaarm备份

Jackson用法

摘自: http://javaarm.com/faces/display.xhtml?tid=3696&page=1#post_45078
Jackson2框架。它有一个预先编写好的JAX-RS内容处理器(handler),可以自动地在Java beans和JSON之间进行转换。它也可以根据一个Java对象模型生成JSON schema文档。默认情况下,其工作原理是:它会探测你的Java类,查找各个属性,并将这些属性映射成JSON。比如,如果我们有如下的Java类:
public class Customer {
    private int id;
    private String firstName;
    private String lastName;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
}
以及简单的数据:
{
    "id" : 42,
    "firstName" : "Bill",
    "lastName" : "Burke"
}
读取该数据从而创建一个Customer的操作就会很简单,如下:
ObjectMapper mapper = new ObjectMapper();
Customer cust = mapper.readValue(inputStream, Customer.class);
输出数据很简单,如下:
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(outputStream, customer);
Jackson框架的JAX-RS集成实际上为你执行了所有的工作,因此,你在你的JAX-RS类中需要做的就是:在编写你的JAX-RS方法时,将输入和输出格式指定为"application/json"。

打赏作者

如果本文对您有帮助,请打赏支持一下作者,谢谢您!


微信打赏

支付宝打赏

发表评论
切换编辑模式