android - 是否可以将 Realm 对象转换为 JSON 对象?

标签 android json realm

我在将对象列表从我的 Realm 数据库发送到 Web 服务器时遇到问题。当未检测到互联网连接时,应用程序应在本地保存交易(我使用 Realm 数据库)。然后,当应用程序检测到互联网连接时,我的 Realm 数据库中的数据应该使用 JSON 格式发送到 Web 服务器。 蒂亚。

最佳答案

是的,你可以,但你必须为你的类注册 TypeAdapter 并为你的类扩展 RealmObject 定义排除策略。

例如,您有一个如下所示的 User 类:

public class User extends RealmObject {
    @PrimaryKey
    private String id;
    private String name;
    private String email;

    // Getter and setter methods.
}

您必须创建一个用户 Serializer:

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());
    }
}

最后,您必须将其作为 TypeAdapter 注册到您的 Gson,并为 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();

我认为这会对您有所帮助。祝你好运。

关于android - 是否可以将 Realm 对象转换为 JSON 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42974475/

相关文章:

android - 如果满足特定条件,如何停止Gradle同步

android - Android ConnectException-无法托管

c++ - 如何使用curl准备http缓冲区

java - 我正在尝试在 java 中合并两个 JsonObjects

python - Python 中类似 JSON 的对象

android - Monodroid Tab Layout 示例项目似乎不起作用

java - 当用户按 Enter 时,EditText + Button onClick

Swift Realm,以正确的方式加载预填充的数据库?

javascript - 如何在 Realm js 中指定 float 列表?

database - 在 React Native 的 Realm 上过滤具有 null 属性的对象