我正在使用 Jackson 流式 JSON 解析器。
我的 JSON 看起来像这样:
{
"foo": {...},
"bar": {...}
}
我想知道何时处理完顶级“foo”节点 ({...}
)。
目前的想法:
使用
JsonStreamContext
并找到上下文与我开始时相同的时间。这做出了一些平等假设(之前和之后的上下文是平等的),我不确定这是真的。老实说,我不确定这个类(class)是干什么用的。记录我何时进入和退出数组/对象。输入时增加;当我离开时递减。当计数达到 0 时,我处于与开始时相同的“水平”。
我走在正确的轨道上吗?这应该通过 API 以什么方式完成?
最佳答案
您提到的方法有效,但您也可以简单地进行递归下降匹配(每个 START_OBJECT 与 END_OBJECT 匹配),并对您不关心的条目使用 parser.skipValue()
(它'将从当前 START_OBJECT/ARRAY 跳到匹配的 END_OBJECT/ARRAY;或者,对于其他标记,留在当前位置。
关于java - 如何在流式 json 中使用 jackson 的上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24747474/