私は文字列のイテレータを持っているとしましょう。私は、Javaオブジェクトのイテレータを作成し、一方から他方へ効率的に変換したいと考えています。私はこれを行う最良の方法が何かを確信していません...私が見たドキュメントは、文字列ごとに新しいパーサを作成するようですが、簡単な方法があるかどうかはわかりません。ジャンクを使用して一連の文字列を継続的に解析する最も効率的な方法は何ですか?
ありがとうございます!
私は文字列のイテレータを持っているとしましょう。私は、Javaオブジェクトのイテレータを作成し、一方から他方へ効率的に変換したいと考えています。私はこれを行う最良の方法が何かを確信していません...私が見たドキュメントは、文字列ごとに新しいパーサを作成するようですが、簡単な方法があるかどうかはわかりません。ジャンクを使用して一連の文字列を継続的に解析する最も効率的な方法は何ですか?
ありがとうございます!
通常、私はちょうど新しい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();
}
簡単な質問:文字列のイテレータによって、あなたは基本的に異なるJSONドキュメントのシーケンスを意味するか?それとも別の何か? – StaxMan
はい、ファイルの代わりに、個別の文字列...ただし、それは基本的にそれです –