如何在解析JSON时查找父Json节点

Opt*_*nal 9 java json jsonschema jackson

我正在使用Jackson解析JSON流.

我正在使用的API是 ObjectMapper.readTree(..)

考虑以下流:

{
  "type": "array",
  "items": {
      "id": "http://example.com/item-schema",
      "type": "object",
      "additionalProperties": {"$ref": "#"}
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我阅读additionalProperties时,我发现这里定义了一个"$ ref".现在要解析引用,我需要转到它的父节点并找出id(解析基础架构).

我找不到任何API去JsonNode的父级持有additionalProperties.有没有办法实现这个目标?

信息:

为什么我需要这个是我需要找到必须解析$ ref的基本模式.要弄清楚基础架构,我需要知道其父级的ID.

Sta*_*Man 13

杰克逊JSON树是单链接的,没有父链接.这有利于减少内存使用(因为可以共享许多叶级节点)和稍微更高效的构建,但是无法在层次结构中上下移动的缺点.

因此,您需要自己跟踪,或使用自己的树模型.

  • 不,这绝对是真的.你在谈论`JsonGenerator`,它不是树,而是流生成器对象.它有上下文(类似于`JsonParser`).但问题是关于没有这种联系的JSON树(`JsonNode`).使用流API可以很好地解决原始问题. (3认同)