他の提案がなく、JSONのフォーマット方法によっては、オプションがある場合があります。
Dzoneの記事で指摘されているように、問題は、分割点にジャンプしたときに簡単に見つけることができる終了要素がJSONにないことです。
これで、入力JSONに「きれいな」または標準のフォーマットがある場合、カスタム入力フォーマットの実装でこれを利用できます。
たとえば、Dzoneの例からサンプルJSONを取得します。
{
"results" :
[
{
"created_at" : "Thu, 29 Dec 2011 21:46:01 +0000",
"from_user" : "grep_alex",
"text" : "RT @kevinweil: After a lot of hard work by ..."
},
{
"created_at" : "Mon, 26 Dec 2011 21:18:37 +0000",
"from_user" : "grep_alex",
"text" : "@miguno pull request has been merged, thanks again!"
}
]
}
この形式では、新しいレコードはそれぞれ、6つの空白と角かっこが開いた行から始まることがわかります(希望しますか?)。レコードは同様の形式で終了します-6つのスペースと閉じ括弧。
したがって、この場合のロジックは、6つのスペースと角かっこが開いた行が見つかるまで行を消費します。次に、6つのスペースと閉じ括弧が見つかるまでコンテンツをバッファリングします。次に、それをJavaオブジェクトに変換したいJSONデシリアライザーを使用します(または、複数行のテキストをマッパーに渡します。