Я получаю с бэкенда json и перевожу его в объект с помощью Gson. Вот так:
public void saveData(JsonObject data) {
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new DateDeserializer()).create();
Structure structure = gson.fromJson(data.get("structure").toString(), Structure.class);
//работаю дальше со structure
}
Но иногда api возвращает очень большой json (около 50 МБ), что вызывает out of memory exception.
Как выглядит Structure:
@Parcel(value = Parcel.Serialization.BEAN, analyze = {Structure.class})
public class Structure extends RealmObject {
@SerializedName("id")
@PrimaryKey
@Expose
@Index
public int id;
@SerializedName("date")
@Expose
public String date;
@SerializedName("notes")
@Expose
@ParcelPropertyConverter(RealmListParcelConverter.class)
public RealmList<StructureNote> notes;
//другие поля
Основная проблема в поле "
notes" - оно содержит около 80% всего файла json, который получаю из api.
Как можно преобразовать такой большой json в объект Java? Я подумывал о том, чтобы разделить
notes на несколько частей, а затем по очереди просто заполнить список, но я не знаю, возможно ли это вообще и как.