0

リーダーの対応するメソッドのJsonReader後には、「このメソッドはリーダー インスタンスに対して 1 回だけ呼び出す必要がある」という規則が続きます。ストリームが終了するまでストリームから読み取る標準ツールはありますか?

4

1 に答える 1

0

JsonReader同じInputStream/の周りに複数の を繰り返し構築できる場合がありますReader。ストリームに対して他に何もせず、パーサーが先読みしない限り、後続の各パーサーは最後に中断したところから再開する必要があります。先読みするかどうかは未定義であり、実装固有である可能性があることに注意してください。また、パーサーの実装では、指定されたストリーム/リーダーを閉じるのが一般的であり、次のように閉じるのをブロックする単純なストリーム/リーダー ラッパーを使用してこれを抑制する必要がある場合があることに注意してください。

Json.createReader(new NoCloseInputStream(myInputStream));

それ以外の場合は、別のパーサーを試してください。私の Web サイト上の目立たないオブジェクトのストリームを読み取ることができるFOSS JSON パーサーがあります。

また、ドキュメントにJsonReaderは、read()メソッドを 1 回だけ呼び出す必要があると記載されています。一度だけ呼び出す必要があるとは言っていないので、read()繰り返し呼び出して動作するかどうかを確認する価値があります。どうでも; メソッドは、 、、またはメソッドのいずれかが複数回呼び出されたIllegalStateException場合にスローするように文書化されています。readreadObjectreadArrayclose

于 2014-06-25T20:58:33.417 に答える