Использование Realm с GsonAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Использование Realm с Gson

Сообщение Anonymous »

У меня есть json с полем _id

Код: Выделить всё

 String json = "{ _id : 1, name : 'Alex', role: 'admin' }"
В моей модели Realm я использую атрибут @SerializedName:

Код: Выделить всё

public class User extends RealmObject {

@SerializedName("_id")
@PrimaryKey
private int id;
private String name;
private String comment;

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getComment() {
return comment;
}

public void setComment(String comment) {
this.comment = comment;
}

}
Если попытаться сохранить json:

Код: Выделить всё

realm.createOrUpdateObjectFromJson(User.class, json)
поле _id не может быть проанализировано, и в базе данных создана запись с идентификатором = 0

В документах используется атрибут @SerializedName

Код: Выделить всё

  Gson gson = new GsonBuilder()
.setExclusionStrategies(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return f.getDeclaringClass().equals(RealmObject.class);
}

@Override
public boolean shouldSkipClass(Class clazz) {
return false;
}
}).create();

User user = gson.fromJson(json, User.class);
realm.beginTransaction();
realm.copyToRealmOrUpdate(user);
В этом случае json = "{ _id : 1, role: 'user' }" просто удалите имя пользователя из базы данных, поскольку по умолчанию значение для String равно нулю.

Так что, возможно, я неправильно использую атрибут. Как учитывать атрибут при работе с методами сохранения json (

Код: Выделить всё

createOrUpdateObjectFromJson
и т. д.)?

Подробнее здесь: https://stackoverflow.com/questions/353 ... -with-gson
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»