Мое требование - прочитать огромный документ JSON, как показано ниже.Однако я не заинтересован в определенных частях документа, а только в массиве объектов, которые я хотел бы десериализовать и сохранить как сущности.В настоящее время я использую библиотеку Gson, и я намерен не загружать весь массив в память, а анализировать их как поток один за другим.
Мой документ JSON выглядит следующим образом:
{
"header":{
..........
..........
},
"data": [{},{},{}.......]
"trailer":{
}
}
при условии, что вышеприведенный JSON представляет объект с именем Document
public class Documemt{
private Header header;
private Data[] data;
private Trailer trailer;
}
. Меня интересуют данные []
. Я начал делать следующее:
InputStream is = Sample.class.getResourceAsStream("/SampleJSON.json");
JsonReader reader = new JsonReader(new InputStreamReader(is));
reader.beginObject();
while(reader.hasNext()){
//At this point, I'm having issues.
gson.fromJson(reader,Document.class); //This will load the entire document into memory. which I do not want.
}
reader.endObject();
* 1013.* Есть ли способ пропустить заголовок и трейлер и создать объект Data [] в виде потока.
что-то вроде
if token == header || token==trailer then
skip
else
Stream<Data> data = jsonReader.read
Любые указатели или примеры для такого требования.
Спасибо