电脑二级公共基础的题目中也包含有jackson的内容,所以小编今天给大家找了一篇简单易懂的Jackson的入门教程,让大家简单了解一下什么是Jackson,帮助大家能够顺利的掌握这方面的知识.
首先小编给大家简单介绍一下:Jackson就是一套java平台的数据处理工具集.它有两个主要分支,一个是:x处于维护状态,只会发布bug修复版本。还有一个是:x还在积极地开发当中。由于这两个版本的Java包名和Mavenartifact不一样,所以它们不互相兼容,但是可以和平共存,也就是项目可以同时依赖1.x和2.x而不会发生冲突,所以小编今天就只给大家简单介绍2.x版本的用法。
下面我们主要了解一下:Jackson的主要模块
首先我们先看一下核心模块
其实核心模块就是扩展模块构建的基础,据统计,截止到2.7版本为止一共有3个核心模块,下面我们一起来看一下:
第一个是:Streaming:jackson-corejar,定义了底层的streamingAPI和实现了Json特性。
第二个是:Annotations:jackson-annotationsjar,包含了标准的Jackson注解。本文暂不介绍。
第三个是:Databind:jackson-databindjar,实现了数据绑定和对象序列化,它依赖于streaming和annotations的包。
接下来我们一起来了解一下:第三方数据类型模块
这些扩展是用ObjectMapper.registerModule()注册的插件式的Jackson模块,一般来说通过添加serializers和deserializers以便Databind包(ObjectMapper/ObjectReader/ObjectWriter)就可以读写这些类型,以此来增加对各种常用的Java库的数据类型的支持。
我们还需要了解的是:数据格式模块
因为Jackson也有处理程序对JAX-RS标准实现者,例如Jersey,RESTeasy,CXF等提供了数据格式支持。处理程序实现了MessageBodyReader和MessageBodyWriter,据相关统计:目前支持的数据格式包括JSON,Smile,XML,YAML和CBOR。大家可以使用以上的这几个数据格式.
关于数据格式的格式支持,其实它提供了除了Json之外的数据格式支持,因为绝大部分仅仅实现了streamingAPIabstractions,以便数据绑定组件可以按照原来的方式使用。另一些(几乎不需要)提供了databind标准功能来处理例如schemas。
下面我们一起实践一下,首先做好准备工作
关于准备工作,首先我们要了解:Jackson是包含了一个核心的jar包和其他两个依赖于核心jar包的jar包,三者的依赖关系是从上到下的,下面我们举个例子:
JacksonCore
JacksonAnnotations
JacksonDatabind
关于Json的处理:
由于小编今天选择使用的是JDk7.0的版本。所以Jackson为我们提供了三种可选的Json处理方法:数据绑定(DataBinding),流式API(StreamingAPI)和树模型(TreeModel)。
接下来我们了解一下什么是DataBinding:
一般来说,我们主要都是使用ObjectMapper来操作Json,然而在默认情况下我们会使用BeanSerializer来序列化POJO。如果是解析,那么TestJson必须要有setters,如下图所示,同时,在这里setters必须是public修饰的,不然的话其属性的值将会为null。如果是生成的情况下就必须有getters,与此同时getters必须是public修饰的。假如属性不是private修饰的话,我们可以不用有getters和setters。关于这方面的详细内容大家可以参考访问修饰符的相关内容。
关于Json解析
了解Json生成
对于StreamingAPI的详细介绍
在Jackson中,它为我们提供了一套底层API来解析Json字符串,而这个API为每个Json对象提供了符号。下面我们来看一个例子:'{'是解析器提供的第一个对象(writeStartObject()),键值对是解析器提供的另一个单独对象(writeString(key,value))。不得不说,这些API都非常的强大,唯一不足的地方是他们需要大量的代码。但其实在很多的情况下,TreeModel和DataBinding可以代替StreamingAPI。
Json解析举例分析
关于Json生成
选择TreeMode
如果你不想为你的Json结构写一个class的话,TreeMode是一个很好的选择。
下面我们来看一下:JSON生成
关于Json的解析
以上都是小编整理的关于jackson入门的基本用法,大家掌握得怎么样呢?其实这一方法对输入、输出数据结构明确的中小型系统特别有效,如商业应用中的文件表格处理。该方法也可与其它方法结合。希望本文对大家有所帮助!