文章目录
一.Jackson
Jackson 库主要分为三个核心模块:jackson-core
,jackson-annotations
,和 jackson-databind
。
模块说明
-
jackson-core
:- 提供了Jackson的核心功能,包括基础的读写API(
JsonParser
和JsonGenerator
),以及JSON处理的低级实现。
- 提供了Jackson的核心功能,包括基础的读写API(
-
jackson-annotations
:- 包含了用于配置Jackson数据绑定行为的注解。这些注解通常用于指定如何将Java对象序列化为JSON,或者如何从JSON反序列化为Java对象。
-
jackson-databind
:- 提供了高级数据绑定支持,依赖于
jackson-core
提供的API和jackson-annotations
定义的配置注解。它允许直接将JSON转换成Java对象(反序列化)或将Java对象转换成JSON(序列化)。
- 提供了高级数据绑定支持,依赖于
二.ObjectMapper
基本功能
- 序列化: 将Java对象转换为JSON字符串。
- 反序列化: 将JSON字符串转换为Java对象。
- 数据绑定: 支持从各种数据源生成和消耗JSON,包括从文件、URL或字符串。
- 流式API: 提供了一种流式生成JSON和解析JSON的方法。
使用ObjectMapper
的一些核心方法:
- writeValue(AsXxx): 用于将对象序列化为JSON,可输出至文件、输出流或者字符串。
- readValue: 用于将JSON字符串、文件或输入流解析为Java对象。
- convertValue: 用于转换不同的数据类型,例如从一种Java对象转换为另一种。
- readTree: 读取JSON内容至一个
JsonNode
树模型,这在灵活处理JSON数据时非常有用。
示例代码
1. 序列化示例
ObjectMapper objectMapper = new ObjectMapper();
Person person = new Person("John Doe", 28);
try {
String json = objectMapper.writeValueAsString(person)