Java常见技术分享-29-Jackson JSON处理类详解

在处理Json字符串的过程中, 最常见的三个类 是 JsonNode , ObjectNode , ArrayNode.

基本概念
  • JsonNode
    • Jackson库中表示JSON 数据结构的基类, JsonNode类本身设计为不可变,例如,你不能直接修改一个JsonNode的字段值。
  • ObjectNode , ArrayNode
    • 属于JsonNode 的子类, 专门表示JSON 对象。 它们是可变的(mutable)。这些子类提供了添加、删除和修改节点内容的方法。
核心概念

在Jackson库中,JsonNode是一个抽象类,而ObjectNode和ArrayNode是它的两个具体子类。当我们使用ObjectMapper读取一个JSON字符串时,返回的JsonNode的具体类型取决于JSON内容。

例如,如果JSON是一个对象(以{开头),那么readTree方法将返回一个ObjectNode实例。如果是一个数组(以[开头),则返回ArrayNode。如果是值(字符串、数字等),则返回相应的值节点(如TextNode、NumericNode等)。

因此,当我们有一个JsonNode对象,并且我们知道它实际上是一个JSON对象(即ObjectNode),那么我们可以将其强制转换为ObjectNode。但是,如果这个JsonNode实际上是其他类型(比如ArrayNode或TextNode),那么强制转换就会抛出ClassCastException。

相关推荐
小羊没烦恼!4 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里4 天前
java中的继承和多态的区别
java
小羊没烦恼!4 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕4 天前
JSONObject与JSONArray封装数据格式区别
java·json
A黄俊辉A4 天前
uniapp webview中实现 app和内嵌的H5双向通信
vue.js·json
胡写代码4 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖4 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时4 天前
01-06-A-JVM排查实战详解
java·jvm
伞伞悦读4 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
vipxieliang4 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot