当前位置: 首页 > news >正文

Jackson的核心类与API方法:ObjectMapper、JsonNode、ObjectNode、ArrayNode

Jackson 不仅是一个基于 Java 语言的、开源的 JSON 解析库,也是 Spring Boot 默认使用的 JSON 解析库。为什么 Spring Boot 会默认使用 Jackson 呢?这是因为在 spring-boot-starter-web 依赖包中已经依赖了 Jackson 的依赖包(即:jackson-databind)。

在实际开发中,Jackson 功能丰富、安全可靠并且具有比较好的兼容性,这让程序开发人员可以很方便地实现 JavaBean 和以 “键 : 值” 结构保存的 JSON 数据的相互转换。

1、ObjectMapper 映射器类

Spring Boot 默认使用的 Jackson 具有两个常用类,它们分别是 JsonNode 节点类和 ObjectMapper 映射器类。下面将详细介绍这两个类的 API。

ObjectMapper 映射器类既可以把 JavaBean 映射成为 “键 : 值” 结构保存的 JSON 数据,也可以把以 “键 : 值” 结构保存的 JSON 数据封装成 JavaBean 对象。

因为 Spring Boot 在启动时会自动创建 ObjectMapper 类的 Bean 即可使用 ObjectMapper 类的常用 API。

【示例】在 Spring Boot 项目中,注入 ObjectMapper 类的 Bean 对象。

/**
 * 注入Jackson映射器
 */
@Autowired
private ObjectMapper mapper;

ObjectMapper 类常用 API 及其说明:

返回值 方法 说明
T convertValue(Object fromValue, Class<T> toValueType) 将 Java 对象(如 POJO、List、Map、Set 等)解析成 JSON 节点对象。
JsonNode readTree(byte[] content) 将字节数组封装成 JSON 节点对象。
JsonNode readTree(File file)  将本地 JSON 文件封装成 JSON 节点对象。
JsonNode readTree(InputStream in) 将字节输入流封装成 JSON 节点对象。
JsonNode readTree(String content) 将 JSON 字符串封装成 JSON 节点对象。
JsonNode readTree(URL source) 将 content 地址提供的 JSON 内容封装成 JSON 节点对象。
T readValue(byte[] src, Class<T> valueType) 将 JSON 类型的字符串的字节数组转换为 Java 对象。
T readValue(File src, Class<T> valueType) 将本地 JSON 内容的文件封装成 Java 对象。
T readValue(InputStream src, Class<T> valueType) 将字节输入流中的 JSON 内容封装成 Java 对象。
T readValue(Reader src, Class<T> valueType) 将字节输入流中的 JSON 内容封装成 Java 对象。
T readValue(String content, Class<T> valueType) 将 JSON 类型的字符串 content 封装成 Java 对象。
T readValue(URL src, Class<T> valueType) 将 src 地址提供的 JSON 内容封装成 Java 对象。
T treeToValue(TreeNode var1, Class<T> valueType) 将 JSON 树节点对象转换成为 Java 对象(如 POJO、List、Map、Set 等)。TreeNode 树节点是整个 JSON 节点对象模型的根接口。
void writeValue(File resultFile, Object value) 将 Java 对象序列化并输出到指定文件中。
void writeValue(OutputStream out, Object value) 将 Java 对象序列化并输出到指定字节输出流中。
void writeValue(Writer w, Object value) 将 Java 对象序列化并输出到指定字节输出流中。
byte[] writeValueAsBytes(Object value) 将 Java 对象转换为字节数组。
String writeValueAsString(Object value) 将 value对象解析成 JSON 格式字符串,value 的属性名为键,属性值为值。

2、JsonNode 节点类

JsonNode 类位于 com.fasterxml.jackson.databind 包下。所谓的节点,就是在 “键 : 值” 结构保持的 JSON 数据中的一个独立的、完整的数据结构。Jackson 既可以是一个值,也可以是一个数组或者一个对象。JsonNode 类提供了大量 API 供程序开发人员使用,这些 API 也别其子类继承或者重写。

JsonNode 类常用 API 及其说明:

相关文章:

  • Mongodb分片模式部署
  • 基于HTML的邮件发送状态查询界面设计示例
  • centos7 下haproxy+keepalived 搭建高可用服务器
  • 软件版本号制定方法
  • 蓝桥杯C++基础算法-多重背包
  • quartz.net条件执行
  • python基于spark的心脏病患分类及可视化(源码+lw+部署文档+讲解),源码可白嫖!
  • 【QA】Qt中有哪些命令模式的运用?
  • AI日报 - 2025年3月24日
  • Langchain4J框架相关面试题
  • 施磊老师高级c++(五)
  • 知识库已上线
  • 同步双写与删缓存在缓存一致性的实践对比
  • linux---------进程概念(上)
  • Linux内核,内存分布
  • Python与数据库
  • ubuntu虚拟机上定制文件系统
  • AI Agent开发大全第六课-AI对话界面参数全解析
  • 解锁二叉树:高效存储与搜索的秘密武器
  • 物化视图详解:数据库性能优化的利器
  • 江西4人拟任县(市、区)委书记,其中一人为“80后”
  • 我使馆就中国公民和企业遭不公正待遇向菲方持续提出严正交涉
  • 俄方代表团抵达土耳其,俄乌直接谈判有望于当地时间上午重启
  • 国际奥委会举办研讨会,聚焦如何杜绝操纵比赛
  • 张涌任西安市委常委,已卸任西安市副市长职务
  • 上海国际电影节纪录片单元,还世界真实色彩