使用带有 realm.io / Android 的保留名称

Using Reserved names with realm.io / Android

假设有一个 API returns 是这样的:

       "names":{  
           "short":"xxx",
           "medium":null,
           "long":"xxxxxx"
        },

(仅举个例子)

然后假设您有一个模型来表示上面的内容,如下所示:

public class Names extends RealmObject {
   private String short;
   private String medium;
   private String long;
   // getters/setters omitted for clarity
}

有问题,因为 shortlong 都是 Java 中的保留关键字。

其他 ORM 提供注释(通常 @Key("othername"))来处理这些情况。

realm.io 的解决方案是什么?

谢谢!

这里是 Realm 的基督徒。我们的 JSON 支持仍然非常简单,但我们计划在下一次迭代中解决类似的问题。目前您有两个选择:将 JSON 转换为 JSONObject 并手动映射静态方法中的字段,如下所示:

public class Names extends RealmObject {

  ...

  public static Names fromJson(JSONObject json) {
    Names names = new Names();
    names.setShortField(json.getString("short");
    return names;
  }
}

或者如果您不介意包含其他第 3 方库,您可以使用具有 @SerializedName 注释的 GSON。