搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 嗨小叔的程序猿之路 > JSON使用之Jackson(二)

JSON使用之Jackson(二)

嗨小叔的程序猿之路 2018-10-30

     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(二)》的版权归原作者「嗨小叔的程序猿之路」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注嗨小叔的程序猿之路微信公众号

嗨小叔的程序猿之路微信公众号:gh_76f83bcccfe9

嗨小叔的程序猿之路

手机扫描上方二维码即可关注嗨小叔的程序猿之路微信公众号

嗨小叔的程序猿之路最新文章

精品公众号随机推荐