Python或Java中强大的json解析器

时间:2013-06-03 14:37:32

标签: 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\ \ {的结果文档拆分成块,然后只解析这些缩进直到最后一个失败。但这是一个讨厌的黑客攻击,并且对于卡钳输出的未来变化并不稳健。我也尝试使用raw_decode,但它仍然需要完整的文档,而不会在每个},返回有意义的结果。

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

1 个答案:

答案 0 :(得分:1)

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