2011-12-19 4 views
0

私は文字列のイテレータを持っているとしましょう。私は、Javaオブジェクトのイテレータを作成し、一方から他方へ効率的に変換したいと考えています。私はこれを行う最良の方法が何かを確信していません...私が見たドキュメントは、文字列ごとに新しいパーサを作成するようですが、簡単な方法があるかどうかはわかりません。ジャンクを使用して一連の文字列を継続的に解析する最も効率的な方法は何ですか?

ありがとうございます!

+0

簡単な質問:文字列のイテレータによって、あなたは基本的に異なるJSONドキュメントのシーケンスを意味するか?それとも別の何か? – StaxMan

+0

はい、ファイルの代わりに、個別の文字列...ただし、それは基本的にそれです –

答えて

1

通常、私はちょうど新しいJsonParserを作成する(そしてそれが仕事をして)をお勧めしますが、JSON文字列が非常に不足している場合は、別の方法は、文字列のリストまたはアレイ上で動作しますStringReaderと同等のものを作成することです - ソートのjava.io.SequenceInputStreamのようにしかし、Stringsで動作するもの。 これは、文字列を連結しないよう注意し、連結されたシーケンスと同等以上のReaderを表す場合に限り、オーバーヘッドが少し下がるはずです。

ジャクソンはそのようなリーダーを使用してJSON値のシーケンスを読み込むことができます - 明示的にひとつずつ、またはより便利に、ObjectMapper.readValues(...)使用(ObjectReaderからまたは方法を、あなたはObjectMapperあり、さまざまなファクトリメソッドを使用して作成することができたのインスタンス):何かのような

ObjectMapper mapper = new ObjectMapper(); 
MyReader reader = new MyReader(listOfStrings); 
MappingIterator<BeanType> it = mapper.reader(BeanType.class).readValues(reader); 
while (it.hasNext()) { 
    BeanType bean = it.nextValue(); 
} 
関連する問題