2016-09-30 9 views
3

私は例えばオブジェクトの配列として構築されているJSONファイルを(サイズが数KB〜数GBまで変化)、解析しています:Java:jsonオブジェクトの配列内のすべてのキーを比較する最良の方法は?

{ 
    "records": [ 
    { 
     "col1": "someValue", 
     "col2": "someValue", 
     "col3": "someValue", 
    }, 
    { 
     "col1": "someValue", 
     "col2": "someValue", 
     "col3": "someValue", 
    }, 
    { 
     "col1": "someValue", 
     "col2": "someValue", 
     "col3": "someValue", 
    } 
    ] 
} 

レコードがテーブルやファイルからのデータの個々の行を表します常に1つのテーブルのデータのみを含みます。

テーブルのメタデータを抽出して問題なく解析できます。私はこれを行うためにJSON.simpleライブラリを使用しています。私は今、何をしようとしている

は、データがテーブルに摂取する必要があるとして、何も多かれ少なかれ、すべてのオブジェクトが同じキーを持っていることを検証しないことです。 keySet()メソッドを使用してキーを抽出してリストに入れることはできますが、あるリストと別のリストを数行(数百から数百万)と比較するのは非常に貧弱でコストのかかる実装です。

迅速JSON配列内のすべてのJSONオブジェクトからすべてのキーを比較することができ、いくつかの素晴らしい解決策はありますか?

+0

必要な列名を事前に知っていますか? – Quant

+0

いいえ、私は列名がわかりません。 – m4r74

答えて

1

データのすべての行(量m)のすべてのキー(量n)を見る必要がないので、複雑さはO(n * m)以下になることはありません。

+0

ええ、確かに、すべてのオブジェクトのすべてのキーを調べる必要がありますが、可能な限り最良の方法はありますか?私は、キーを検証することを可能にするjsonライブラリの1つにメソッドが存在することを期待していました.. – m4r74

+0

、または妥当性は検証されませんが、検証にはスキーマが必要です。 – m4r74

関連する問題