【问题标题】:JsonArray to Realm with gson使用 gson 到领域的 JsonArray
【发布时间】:2017-07-13 14:43:56
【问题描述】:

我在将 jsonarray 存储到领域时遇到问题 我得到一个例外

java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY

oncreat 活动我这样做

Realm.init(getApplicationContext());
    RealmConfiguration realmConfiguration = new RealmConfiguration.Builder().build();

    Realm.setDefaultConfiguration(realmConfiguration); // Make this Realm the default;
    realm.getInstance(realmConfiguration);

但领域变量为空

我的保存代码是

adressModelListrealm = gson.fromJson(parentArray, AdressModelRealm.class);

当我尝试使用新代码进行存储时

List<AdressModelRealm> woList = gson.fromJson(parentArray, new TypeToken<List<AdressModelRealm>>() {
                    }.getType());
                    realm.beginTransaction();
                    realm.copyToRealm(woList);
                    realm.commitTransaction();

我得到一个 nullPointexecption

我的模特:

public class AdressModelRealm extends RealmObject {




private String SNR;
private String ADR_2_8;     // Adressnummer
private String ADR_20_30;   // Adressname

...更多的 getter 和 setter

还有我的 json 数组:

 [{
    "SNR": "6",
    "ADR_2_8": "10000",
    "ADR_20_30": "Kunde Inland",
    "ADR_2332_20": "+49 (1234) 56789-00",
    "ADR_242_20": "+49 (1234) 56789-99",
    "ADR_2187_46": "Inlandstraße",
    "ADR_2170_11": "1",
    "ADR_110_10": "12345",
    "ADR_2233_40": "Inlandsort",
    "ADR_1330_60": "inlandzk@meine-firma-homepage.de"
 }]

我可以帮助任何人吗?

【问题讨论】:

    标签: java android json gson realm


    【解决方案1】:

    您将要使用JSON Schema to POJO,以便将您的对象从JSON 转换为Java 对象。然后你会想要AddressModel extend RealmObject,这样你就可以像这样把你的Java对象放到领域中

    Realm.init();
    Realm realm = Realm.getDefaultInstance();
    realm.executeTransaction(new Realm.Transaction() {
                        @Override
                        public void execute(Realm realm) {
                           realm.copyToRealmOrUpdate(new AddressModel(//constructor);
                        }
                    });
    

    Here 是一个很好的关于 JSONSchemaToPOJO 工作原理的教程。

    【讨论】:

    • 我已经这样做了,但是我得到了同样的错误,json是一个数组有问题吗?我在异步任务中使用 adressModelListrealm = gson.fromJson(parentArray, AdressModelRealm.class);而不是使用 realm.executeTransaction(new Realm.Transaction() { @Override public void execute(Realm realm) { realm.copyToRealmOrUpdate(woList); } });
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多