java - 如何在流式 json 中使用 jackson 的上下文?

标签 java json parsing stream jackson

我正在使用 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/

相关文章:

java - 从解析数据库 Android 中提取 INT

json - 如何在Elasticsearch中查询不同的字段?

javascript - 解析 JSON 对象以获取唯一记录

java - 不使用 Maven 运行简单的 Spring 批处理作业?

java - 检测 zip 文件中的二进制文件和字符编码

json - RestKit 2.0 getObjectsAtPathForRelationship : Error perform pattern matching

javascript - 创建函数指针的 JavaScript 数组,而不调用它

parsing - 如何使用antlr4中的Listener方法获取解析器的内容?

c# - LINQ .ToList() 在单个结果上失败

java - 生成xml文档 : JSP or Servlet?