我有一个带有Object的RealmObject类,它的实际PrimaryKey是这个对象中的String。但是不允许将Object作为主键。
public class Model extends RealmObject {
@PrimaryKey
private Id _id;
...
}
public class Id extends RealmObject {
private String id; // the primary key for the class Model
...
}
因为目前无法更改服务器的响应结构,所以我尝试了不同的方法来解决问题。但到目前为止他们没有工作。我在Android Studio中为我的项目使用“io.realm:realm-gradle-plugin:0.87.2”和“realm-android”插件。
1
public class Model extends RealmObject {
@PrimaryKey
private String id;
private Id _id;
public String getId() {
return _id.getId();
}
...
}
2
public class Model extends RealmObject {
@PrimaryKey
@SerializedName("_id.id")
private String id;
private Id _id;
...
}
你会如何解决?是否可以只使用Realm或者我是否必须使用第二个工具,如gson库?
编辑:
谢谢beeender的答案!这是有效的,但如果有人有更好的解决方案,欢迎你。
JSONArray jsonArray = null;
try {
jsonArray = new JSONArray(total.toString());
for(int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String id = jsonObject.getJSONObject("_id").getString("id");
jsonObject.put("id", id);
}
} catch (JSONException e) {
e.printStackTrace();
}
答案 0 :(得分:1)
谢谢beeender的答案!这是有效的,但如果有人有更好的解决方案,欢迎你。
JSONArray jsonArray = null;
try {
jsonArray = new JSONArray(total.toString());
for(int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String id = jsonObject.getJSONObject("_id").getString("id");
jsonObject.put("id", id);
}
} catch (JSONException e) {
e.printStackTrace();
}