【问题标题】:java.lang.IllegalArgumentException: JSON object doesn't have the primary key field 'id'java.lang.IllegalArgumentException:JSON 对象没有主键字段“id”
【发布时间】:2017-07-08 17:38:47
【问题描述】:

我使用领域来解析这个 JSON,但我得到这个错误: java.lang.IllegalArgumentException:JSON 对象没有主键字段“id”。

LINK of Json

这是我的方法:

    Realm r = Realm.getDefaultInstance();
        r.beginTransaction();
        r.createOrUpdateObjectFromJson(Application.class,result);
        r.commitTransaction();

我的应用程序类是:

public class Application extends RealmObject {

    @PrimaryKey
    private int id;
    private RealmList<girl> girls;


    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public RealmList<girl> getGirls() {
        return girls;
    }

    public void setGirls(RealmList<girl> girls) {
        this.girls = girls;
    }

    public Application() {
    }

    public Application(int id, RealmList<girl> girls) {
        this.id = id;
        this.girls = girls;
    }
}

我班的女孩是

public class girl extends RealmObject {

    @PrimaryKey
    private int id;
    private String name;
    private String ville;
    private String tel;
    private String photo;
         //getters and setters and constructors with and without params
}

【问题讨论】:

  • JSON 数据和模型定义看起来正确。您确定您传入的result 与您发布的 JSON 数据相同吗?此外,result 应该是 JSON 数据,所有应用程序的字段都作为根元素,例如 {"id": 1, "girls": [xxx]}
  • 到目前为止您找到任何解决方案吗?
  • 有同样的问题,删除对象名称解决了这个问题。在这种情况下“”应用程序“:{ ...”

标签: java json parsing realm


【解决方案1】:

尝试使用realm.copyFromRealm();,更多请参考下面的链接

https://github.com/realm/realm-java/issues/1973

【讨论】:

    猜你喜欢
    • 2022-10-07
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2021-09-23
    • 2016-10-18
    • 1970-01-01
    • 2017-07-07
    相关资源
    最近更新 更多