2

Python または Java で堅牢なjson パーサーを探しています (これまでは Python を使用してきましたが、Java ベンチマークを分析するために Python を使用しているため、Java を使用するのが妥当な代替手段です)。

切り捨てられた不完全なドキュメントに関して堅牢です。

その理由は、現在、いくつかの (マイクロ) ベンチマークにキャリパーを使用しており、ベンチマークがまだ実行されている間(または途中でキャンセルした場合)、出力ファイルが完全な JSON ドキュメントにならないためです。ある時点で本質的に切り詰められたこれらのファイルを読み取ることjsonも、読み取ることもありません。simplejson

(Caliper の Web インターフェイスは好きではありません。速度が遅く、大規模な実験セットに対応できず、多くのデータが送信に失敗して実行から失われるためです。)

大まかに、ドキュメントは次のようになります。

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

現在、キャリパーが現在生成している既知のインデントを使用して結果ドキュメント},\n\ \ {をチャンクに分割し、最後のドキュメントが失敗するまでこれらのみを解析する厄介なハックを使用しています。しかし、それは厄介なハックであり、キャリパー出力の将来の変化に対して堅牢ではありません. も使用してみraw_decodeましたが、それでも完全なドキュメントが必要であり、各 で意味のある結果が返されません},

XML プルなどに似た API を探しています。これにより、イベントベースの API で、ドキュメントが切り捨てられた時点までアクセスできるようになります。基本的に、私は{}wrapper 内のすべての完全なセクションに興味があります[]

4

1 に答える 1

1

Jacksonはイベントベースの解析をサポートしています。また、ドキュメントをストリーミングすることもできますが、関心のある部分にはツリー API を使用してください。このアプローチを示すブログ投稿がここにあります。

于 2013-06-03T14:54:22.727 に答える