我正在使用Jackson流JSON解析器。
我的JSON是这样的:
{
"foo": {...},
"bar": {...}
}
我想知道我什么时候完成处理顶层"foo"节点({...}
)。
当前的想法:
使用
JsonStreamContext
并发现何时有上下文与我开始时相同。这做了一些相等的假设(前后的上下文是相等的),我不确定是否正确。老实说,我不知道这门课是干什么用的。保持计数当我进入和退出数组/对象。输入时增加;当我离开的时候。当计数达到0时,我处于与开始时相同的"水平"。
我讲对了吗?用API应该怎么做?
方法你提到的工作,虽然你也可以简单地做递归下降匹配(每个START_OBJECT与END_OBJECT匹配),并使用parser.skipValue()
条目,你不关心(它会跳过当前的START_OBJECT/ARRAY到匹配END_OBJECT/ARRAY;或者,对于其他标记,留在当前位置)。