使用带有 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
}
有问题,因为 short
和 long
都是 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。
假设有一个 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
}
有问题,因为 short
和 long
都是 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。