当前位置: 首页 > 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 及其说明:

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

2、JsonNode 节点类

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

JsonNode 类常用 API 及其说明:


http://www.mrgr.cn/news/95659.html

相关文章:

  • Blender导出fbx到Unity找不到贴图的问题
  • C++面试题总结
  • 【NLP 42、实践 ⑪ 用Bert模型结构实现自回归语言模型的训练】
  • (UI自动化测试web端)第二篇:元素定位的方法_xpath路径定位
  • Maven下载以及项目创建(笔记)
  • CSS动画
  • 51c自动驾驶~合集26
  • Linux系统管理与编程08:任务驱动综合应用
  • 深入理解Java享元模式及其线程安全实践
  • 网络安全学习-博客文序记
  • CentOS系统下安装tesseract-ocr5.x版本
  • el-select 可搜索下拉框 在ios、ipad 无法唤出键盘,造成无法输入
  • 算法设计——最坏时间复杂度分析
  • 内存取证之windows-Volatility 3
  • 避雷 :C语言中 scanf() 函数的错误❌使用!!!
  • (Linux操作系统)进程状态
  • Vue.js 应用的入口文件main.js
  • C++学习之云盘上传文件列表下载
  • python 学习基本语法整理
  • 介绍一款基于MinerU的PDF翻译工具