Можно ли выполнить синтаксический анализ с помощью JSONObject и RealmObject с одной и той же моделью?

#android #json #realm #android-json

#Android #json #область #android-json

Вопрос:

Я не хочу создавать отдельные модели для json и realm. Я ищу способ сделать это.

Как мне справиться с этим в одной модели без создания двух моделей?

Мой Json;

 "story": {
   "id": 3,
   "title": "title",
   "is_new": false,
   "thumbnail": "url",
   "original": "url",
}
 

MyRealmObject

 public class stories extends RealmObject {
    @PrimaryKey
    @Required
    private String id;
    @Required
    private String title;
    private boolean isNew;
    @Required
    private String thumbnail;
    @Required
    private String original;

    [..and getter setter..]
}
 

Комментарии:

1. Да, вполне возможно использовать одну и ту же модель как для синтаксического анализа Json, так и для RealmObject

2. Обычно это плохое решение. Вы хотите, чтобы ваши локальные данные были отделены от данных, которые вы получаете с сервера. Кстати, да, просто используйте @SerialzedName() адаптер by GSon или Moshi для преобразования Json в ваш RealmObject

3. @p.mathew13 Не могли бы вы предоставить мне образец?

Ответ №1:

Вы можете использовать одну и ту же модель как для синтаксического анализа JSON, так и для Realm.

возможно, вам потребуется использовать SerializedName , потому что field is_new не будет работать.

пример:

 public class Stories extend RealmObject {


private int id;
private String title;

@SerializedName("is_new") // required
private Boolean isNew;// use preferred name

private String thumbnail;
private String original;

/* getter amp; setter */

}
 

Синтаксический анализ

 Stories mDataClass = new Gson().fromJson("{/*whatever your json object*/}", Stories.class);