JSON使用之Jackson

Posted 嗨小叔的程序猿之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON使用之Jackson相关的知识,希望对你有一定的参考价值。

     Jackson 简单易用,不依赖于外部jar 包,而且更新速度比较快。其也是 SpringMVC 框架 json 格式化输出的默认实现。


一、结构

    lib包依赖包含三部分:   

  • jackson-core: 核心包

  • jackson-annotations : 注解包

  • jackson-databind : 数据绑定(依赖 core 和 annotations)

二、 处理方式   

三种 json 处理方式:

  • Streaming API : 其他两种方式都依赖于它而实现,如果要从底层细粒度控制 json 的解析生成,可以使用这种方式;

  • Tree Model  : 通过基于内存的树形结构来描述 json 数据。json 结构树由 JsonNode 组成。不需要绑定任何类和实体,可以方便的对 JsonNode 来进行操作。

  • Data Binding : 最常用的方式,基于属性的 get 和 set方法以及注解来实现 JavaBean 和 json 的互转,底层实现还是 Streaming API.

三、项目实战(案例)

1、新建两个Bean对象,其中一个Bean对象包含另一个Bean对象,如下所示:

   

JSON使用之Jackson(二)

(注:日期类需要加时区timezone,否则转换过程中会出现相差一天之类的情况)

1、Streaming API 转换

    

JSON使用之Jackson(二)

JSON使用之Jackson(二)

结果测试:

JSON使用之Jackson(二)

JSON使用之Jackson(二)

2、Tree Model 方式

JSON使用之Jackson(二)

JSON使用之Jackson(二)

结果测试:

public static void main(String[] args) throws Exception{

System.out.println("TreeModel toJsonStr:");

JacksonTreeModel jacksonTreeModel = new JacksonTreeModel();

String jsonStr = jacksonTreeModel.toJson();

System.out.println();

System.out.println();

System.out.println("TreeModel parse jsonString:");

jacksonTreeModel.parseJsonStr(jsonStr);

}

JSON使用之Jackson(二)

3、Data-binding方式

jsonStr --> Bean

JSON使用之Jackson(二)

jsonStr --> Bean -->  jsonStr

JSON使用之Jackson(二)


4、其他(这边添加BeanUtilTool转换时候保证空值也进行初始化赋值)

JSON使用之Jackson(二)

JSON使用之Jackson(二)

JsonDateValueProcessor.Java请参照()

JSON使用之Jackson(二)

添加setNullValueSerializer,保证若为空值,直接赋初始值为空串

测试:



其他参考:

   --> 

    -->    


以上是关于JSON使用之Jackson的主要内容,如果未能解决你的问题,请参考以下文章

Jackson,fastjson Gson比较

python接口测试之json模块的使用

JavaScript之Ajax-5 JSON(JSON概述使用JSON)

python基础之-----json模块使用

Android之JSON全面解析与使用

python3之json模块使用