Jackson JSON与JsonNode和ObjectNode之间的区别

时间:2016-08-04 06:30:33

标签: jackson

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

用于以字符串格式映射json。

1 个答案:

答案 0 :(得分:16)

快速回答

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

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

JsonNode

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

引用JsonNode文档:

  

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

     

然而,需要通过特定的子类(例如ObjectNodeArrayNode)访问Mutators方法( setters )。

     

这似乎是明智的,因为在构建或修改树时通常可以使用正确的类型信息,但在阅读树时(从解析的JSON内容新构建)不太常见。

可以在JsonNode包中找到com.fasterxml.jackson.databind.node具体实现。

ObjectNode

ObjectNodeJsonNode具体实现,用于映射JSON对象和JSON对象defined as following

  

对象是一组无序的名称/值对。对象以{左大括号)开头,以}右大括号)结束。每个名称后跟:冒号),名称/值对由,逗号)分隔。

     

JSON object