json ブロックの解析に約 250 ミリ秒かかる Android アプリケーションがあります。これには配列が含まれており、すぐに利用できる最初の 6 ~ 7 個の値のみが必要です。そして、これらのデータに到達するまでの時間を短縮する必要があります。
基本的に次のようなデータ構造があります。
class Data {
List<Map> data = objectmapper_readvalue_data;
public HashMap getItem(int i) {
return data.get(i);
}
}
私は本当に JsonParser でこのようなことをしたいと思っていました: class Data { List data = new List(); JsonParser p;
public HashMap getItem(int i) {
while (data.length < i) {
data.append(p.parseOneBlockOfData());
}
return data.get(i);
}
}
最初のレンダリングでは最初の 5 ~ 6 個の値のみが解析され、残りは後で処理できます。ただし、「parseOneBlockOfData」関数がありません。もちろん、次のブロック全体が見つかるまで StringBuilder を使用して解析内のすべての値をバッファリングし、次に objectParser またはそれを使用できますが、パフォーマンスがどのようになるかはわかりません。
これを行う非ハックな方法はありますか?