2

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

截断和不完整的文档具有鲁棒性。

原因是我目前正在将caliper用于一些(微)基准测试,并且当基准测试仍在运行时(或者如果我过早取消它),输出文件将不是完整的 JSON 文档。既json不会也simplejson不会读取这些在某些时候基本上被截断的文件。

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

大致上,这些文档如下所示:

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

现在,我正在使用一个讨厌的 hack,它使用 caliper 当前产生的已知缩进将结果文档拆分},\n\ \ {为块,然后只解析这些,直到最后一个失败。但这是一个令人讨厌的黑客行为,并且对未来卡尺输出的变化并不稳健。我也尝试过使用raw_decode,但它仍然会期望完整的文档,并且不会在每个},.

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

4

1 回答 1

1

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

于 2013-06-03T14:54:22.727 回答