Jackson JSON与JsonNode和ObjectNode之间的区别

unn*_*nik 10 jackson

我正在使用Jackson进行JSON解析.JsonNode和ObjectNode有什么区别.

以及用于以字符串格式映射json的内容.

cas*_*lin 21

快速回答

  • JsonNode:抽象类,在读取 JSON文档时使用.
  • ObjectNode:构建或修改 JSON文档时使用的具体实现.

继续阅读以获得更详细的答案.

JsonNode

JsonNode是一个抽象类,用作所有JSON节点的基类,它构成了Jackson实现的JSON树模型的基础.

引用JsonNode文档:

作为一般设计规则,大多数访问器(getters)方法都包含在此基类中,以允许遍历没有类型转换的结构.

但是,Mutators方法(setter)需要通过特定的子类(例如ObjectNodeArrayNode)来访问.

这似乎是合理的,因为在构建或修改树时通常可以获得正确的类型信息,但在阅读树时(从解析的JSON内容新构建)则较少.

JsonNode具体实施方式可以在找到com.fasterxml.jackson.databind.node包.

ObjectNode

ObjectNode是映射JSON对象和JSON对象的具体实现,定义如下:JsonNode

对象是一组无序名称/值对.对象开始{(左括号)和结尾}(右括号).每个名称后跟:(冒号),名称/值对由,(逗号)分隔.

JSON对象