gpt4 book ai didi

android - Realm createAllFromJson 抛出 BEGIN_ARRAY 但 BEGIN_OBJECT 异常

转载 作者:行者123 更新时间:2023-11-29 23:49:00 26 4
gpt4 key购买 nike

我正在开发一个 Android 移动应用程序,我能够使用改造来下载一个 json 文件并将其保存在本地存储中(在下载文件夹下)。但是,当我使用 createAllFromJson 将 json 文件的内容插入 reaml 数据库时,它抛出异常:BEGIN_ARRAY but was BEGIN_OBJECT

我提到了 this但没有运气。

这是代码 fragment :

JSON:

{
"id": "2.1",
"description": "Initial release",
"version_external_id": "",
"released": false,
"source": {
"created_on": "2018-01-08T13:02:37.017",
"name": "Classification",
},
"items": [
{
"type": "Item",
"id": "1",
"display_name": "TV",
"descriptions": "Household item",
},
{
"type": "Item",
"id": "2",
"display_name": "CD Player",
"descriptions": "Household item",
}
]
}

模型:

public class ItemList extends RealmObject {

@SerializedName("items")
private RealmList<Item> getItems;
}

public class Item extends RealmObject
{
private String id;
private String type;
private String display_name;
private String descriptions;
//getter and setters...
}

读取json并向realm数据库插入数据的方法

private void populateItemList() {
Realm realm = Realm.getDefaultInstance();
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
File file = new File(
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),"items.json");
try {
FileInputStream stream = new FileInputStream(file);
realm.createAllFromJson(ItemList.class, stream);

}catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
if(realm.isInTransaction())
realm.cancelTransaction();
e.printStackTrace();
}
}
});
}

最佳答案

我将 createAllFromJson 更改为 createObjectFromJson,它现在可以正常工作了。

关于android - Realm createAllFromJson 抛出 BEGIN_ARRAY 但 BEGIN_OBJECT 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51113222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com