java - Python 或 Java 中强大的 json 解析器

标签 java python json parsing caliper

我正在寻找 Python 或 Java 中的健壮 json 解析器(到目前为止,我一直在使用 Python,但当我使用它来分析 Java 基准测试时,使用Java 是一个合理的选择。)

对于被截断和不完整的文档是稳健的。

原因是我目前正在使用 caliper对于某些(微型)基准测试,虽然基准测试仍在运行(或者如果我过早地取消了它),输出文件将不是完整的 JSON 文档。 jsonsimplejson 都不会读取这些在某些时候基本上被截断的文件。

(我不喜欢 Caliper 网络界面,因为它很慢,无法扩展到大型实验集,而且很多数据无法提交,然后在运行中丢失。)

大致上,文件看起来像这样:

[
  {
    // first record, in multiple lines
  },
  {
    // second record, in multiple lines
  },
  {
    // truncated record.

现在,我正在使用一个讨厌的 hack,它使用 caliper 当前生成的已知缩进将 },\n\\{ 处的结果文档拆分成 block ,然后仅解析这些 block 直到最后一个失败。但这是一个令人讨厌的 hack,并且对卡尺输出的 future 变化不稳健。我也尝试使用 raw_decode,但它仍然需要完整的文档,并且不会在每个 }, 返回有意义的结果。

我正在寻找类似于例如XML pull,它允许我在基于事件的 API 中访问文档直到它被截断的位置。本质上,我对包装器 [] 中所有完整的 {} 部分感兴趣。

最佳答案

Jackson支持基于事件的解析。它还允许您流式传输文档,但对您感兴趣的部分使用树 API。有一篇博客文章演示了这种方法 here .

关于java - Python 或 Java 中强大的 json 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16899321/

相关文章:

java - 哪个可互操作的 JavaScript 和 Grails/Java 模板框架?

java - 我怎么知道Android Studio中的minSdkVersion有什么可用?

java - 如何在 Scene Builder 中对齐所有文本字段?

python - 在python中使用argparser进行多个分组

python - Django queryset 对象返回 None 而不是 0,即使数据库将 0 存储为字段值

python - 如何在程序中启动 python 控制台(以便于调试)?

arrays - PostgreSQL 将出现次数计入 json 键/值

java - 单个 ListView 中的不同对象

javascript - 当名称未知时查找并存储 JSON 嵌套数组

java - Dbpedia-spotlight 缺少资源