Я использую Couchbase Lite в своем приложении для Android. В приложении я получаю кучу объектов Json с сервера, которые я хочу хранить локально. Но я не могу найти способ сделать это без предварительной сериализации их в HashMap. Поскольку данные в любом случае хранятся в формате Json, это приводит к ненужным накладным расходам и приводит к большому количеству шаблонного кода.
Если бы я был более конкретным, это своего рода Json, который я получаю:
"events":[
{
"title":"event1",
"venue":{
"name":"venue1"
}
]
Я использую Gson для преобразования того, что входит в массив, в POJO:
public final class Event {
@SerializedName("title") private String title;
@SerializedName("venue") private Venue venue;
public static final class Venue {
@SerializedName("name") private String name;
public Map<String, Object> toMap() {
Map<String, Object> docContent = new HashMap<String, Object>();
docContent.put("name", name);
return docContent;
}
}
public Map<String, Object> toMap() {
Map<String, Object> docContent = new HashMap<String, Object>();
docContent.put("title", title);
docContent.put("venue", venue.toMap());
return docContent;
}
// getters left out
}
И затем я использую объект Java для его хранения:
Document document = database.createDocument();
document.putProperties(event.toMap());
Встраивание идет намного глубже и полей гораздо больше. Я чувствую, что должен быть способ сделать вещи проще.
Спасибо за любые подсказки!