Android 是否可以将领域对象转换为JSON对象?
从我的领域数据库向web服务器发送对象列表时出现问题。当没有检测到互联网连接时,应用程序应该在本地保存事务(我使用的是领域数据库)。然后,当应用程序检测到互联网连接时,my realm数据库中的数据应该使用JSON格式发送到web服务器。Android 是否可以将领域对象转换为JSON对象?,android,json,realm,Android,Json,Realm,从我的领域数据库向web服务器发送对象列表时出现问题。当没有检测到互联网连接时,应用程序应该在本地保存事务(我使用的是领域数据库)。然后,当应用程序检测到互联网连接时,my realm数据库中的数据应该使用JSON格式发送到web服务器。 Tia。可以,但必须为类注册TypeAdapter,并为类定义排除策略 例如,您有一个User类,如下所示: public class User extends RealmObject { @PrimaryKey private String
Tia。可以,但必须为类注册
TypeAdapter
,并为类定义排除策略
例如,您有一个User
类,如下所示:
public class User extends RealmObject {
@PrimaryKey
private String id;
private String name;
private String email;
// Getter and setter methods.
}
您必须创建一个用户序列化程序:
public class UserSerializer implements JsonSerializer<User> {
@Override
public JsonElement serialize(User user, Type typeOfSrc, JsonSerializationContext context) {
final JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("id", user.getId());
jsonObject.addProperty("email", user.getEmail());
jsonObject.addProperty("name", user.getName());
}
}
我想这对你有帮助。祝你好运。Realm对象是java对象,所以是的,这是可能的。.我用GSON尝试了Realm,但我无法将Realm对象设置为POJO。请使用GSON.toJson(Realm.copyFromRealm(myObj))
。这应该是现成的。你不再需要自定义类型适配器了。只需使用realm.copyFromRealm(obj)
@ChristianMelchior将分离的副本发送到GSON,我想将基于JSON的数据解析到扩展realm的对象。你能帮忙吗?我不想存储数据,我只想解析。
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;
}
})
.registerTypeAdapter(User.class, new UserSerializer())
.create();