Jackson - 高性能的 JSON 处理开源框架

更新日期:2020年08月31日 投稿作者:分类目录网 围观人数:805
Jackson框架是基于Java平台的一套数据处理工具,被称为“最好的Java Json解析器”。 
Jackson框架包含了3个核心库:streaming,databind,annotati***.Jackson还包含了其它数据处理类库,此外不作说明。

Jackson版本: 1.x (目前版本从1.1~1.9)与2.x。1.x与2.x从包的命名上可以看出来,1.x的类库中,包命名以:org.codehaus.jackson.xxx开头,而2.x类库中包命令:com.fastxml.jackson.xxx开头


1 Jackson概述

  • 序列化和反序列化json的Java开源框架
  • Spring MVC的默认json解析器

1.1 优点

  1. Jackson 所依赖的jar包较少,简单易用。
  2. 与其他 Java 的 json 的框架 Gson 等相比,Jackson 解析大的 json 文件速度比较快。
  3. Jackson 运行时占用内存比较低,性能比较好
  4. Jackson 有灵活的 API,可以很容易进行扩展和定制。

2 Jackson 2.x介绍

2.x 版本,包名变为 com.fasterxml.jackson

  1. 核心组件包括:jackson-annotati***、jackson-core、jackson-databind。
  2. 数据格式模块包括:Smile、CSV、XML、YAML等等
  3. jaxrs模块:JSON、XML等等

2.1 核心组件

<!--
        jackson-core 核心包,提供基于”流模式”解析的相关 API,它包括 JsonPaser 和 JsonGenerator。
        Jackson 内部实现正是通过- 高性能的流模式 API 的 JsonGenerator 和 JsonParser 来生成和解析 json。
        --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.8</version> </dependency> <!-- jackson-annotati*** 注解包,提供标准注解功能 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotati***</artifactId> <version>2.9.0</version> </dependency> <!--
        jackson-databind 数据绑定包,
        提供基于 ”对象绑定” 解析的相关 API( ObjectMapper )和 "树模型" 解析的相关 API(JsonNode);
        基于”对象绑定” 解析的API 和 ”树模型”解析的API 依赖基于”流模式”解析的 API。
        --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.8</version> </dependency> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

2.2 数据格式模块

<!-- dataformat模块 --> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-yaml</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-smile</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-cbor</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-csv</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-properties</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-avro</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-protobuf</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-ion</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformats-binary</artifactId> <version>2.9.8</version> <type>pom</type> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformats-text</artifactId> <version>2.9.8</version> <type>pom</type> </dependency> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58

2.3 jaxrs模块

<dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-xml-provider</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-yaml-provider</artifactId> <version>2.9.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-smile-provider</artifactId> <version>2.9.8</version> </dependency> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

3 Jackson 1.x介绍

  • 1.x 版本的包名是 org.codehaus.jackson
  • 单个库下载:提供了core-asl、mapper-asl、core-lpgl、mapper-lgpl、jax-rs、jax-xc、mrbean、smile等JAR包下载。
  • Jackson ALL库:包含了上面所有的JAR包,打包成了单个JAR文件。
  • Jackson Mini库:包含了jackson-core库,排除了注释库、许可证文件、用于使用受限的环境,比如移动设备,JAR包的尺寸显著减少。
  • Smile Tool工具:一个命令行工具,用于在Smile格式和JSON格式之间相互转换。


声明:本站资源收集于网络,但不代表本站的观点和立场,具体内容可自行甄别,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

SEO短格式内容与长格式内容(分类目录何时使用哪个?)

我们都知道制定可靠的内容策略的重要性以及正确解决方案可以实现的指数级增长。但是,在内容营销界也存在许多误解。 在过去的某个时候,您可能已经得到建议,说一段内容越长,效果越好。或者,您网站上的每个内容至少应包含2,000个字。  事实是这些不是真的,它们也不是不真实的-如果这有意义吗? 简短和长篇内容均在成功的内容营销策略中占有一席之地,并且两者在您的营销工具箱中都是非常强大的工具。 您只需要在正确的上下文中选择正确的内容形式

db是什么意思?(.db文件的正确打开方式)

db是什么意思?(.db文件的正确打开方式) db是什么意思?   db一般用记事本打开。db是datebase的缩写,是数据库文件。 用UltraEdit软件打开db文件:   1.点击打开网页浏览器,输入百度网址打开百度首页,然后再搜索窗口输入UltraEdit,然后点击百度一下。   2.点击百度一下以后出现免费下载的网站链接,找到

STDLib_支持科学和数字化的基于 web 的机器学习应用的开源库

STDLib 简介:支持科学和数字化的基于 web 的机器学习应用的开源库 STDLib是一个基于 JavaScript 和 Node.js 应用的开源库,如果您正在寻找一种在浏览器中运行,支持科学和数字化的基于 web 的机器学习应用,STDLib 能满足你的需要。 这个库能提供全面而先进的数学和统计学上的功能,来帮助你构建高性能的机器学习模型。你同样也可以使用它丰富的功能来构建应用程序和其他的库。除此之外,如果你想要一个数据可视化和探索性数据分析的框架 —— STDLib,