gpt4 book ai didi

react-native - 如何将 JSON 快速插入到 React Native 应用程序的 Realm 数据库中

转载 作者:行者123 更新时间:2023-12-02 01:00:33 24 4
gpt4 key购买 nike

我正在使用 React Native 和 Realm 设计一个离线应用程序。其中一项功能是在下线之前从 Web API 下载数据。下载的数据是一个长 JSON。例如:

[{"EventID":"3769","EventName":"Birthday Party","EventDate":"Jun 21 2018  4:00 PM"},{"EventID":"4232","EventName":"Homecoming","EventDate":"Jun 22 2018 11:00 PM"}, {"EventID":"3838","EventName":"the Summer Show","EventDate":"Jun 28 2018  2:00 AM"}]

在 Realm 中如何插入一个条目有很多示例,例如:
realm.write(() => {
Event.push({EventID: 3769, EventName: 'Birthday Party'});
Event.push({EventID: 4232, EventName: 'Homecoming'});
});

但是有没有办法一次将 JSON 批量插入到 Realm 表中?

非常感谢!!!

更新 - 有效!

我已经用下面的代码尝试了 geisshirt 的解决方案(谢谢!)。导入一个包含 50,000 个实体的 JSON 字符串大约需要 10 秒。 (每个实体都有 ID、名称和日期属性)。一个技巧是 Debug模式比在真正的应用程序上运行要慢得多。

react native 代码:
axios.get('https://APISERVER/XX/GET_EVENTS')
.then(response => {
Realm.open({
schema: [{ name: 'Events', properties: { EventID: 'string', EventName: 'string', EventDate: 'string' } }]
}).then(realm => {
realm.write(() => {
response.data.forEach(obj => {
realm.create('Events', obj);
});
});
})

再次感谢!

最佳答案

您可以执行以下操作:

let objs = JSON.parse('[{"EventID":"3769","EventName":"Birthday Party","EventDate":"Jun 21 2018  4:00 PM"},{"EventID":"4232","EventName":"Homecoming","EventDate":"Jun 22 2018 11:00 PM"}, {"EventID":"3838","EventName":"the Summer Show","EventDate":"Jun 28 2018  2:00 AM"}]');
realm.write(() => {
objs.forEach(obj => {
realm.create('Event', obj);
});
});

您在一个事务中插入所有对象 ( realm.write() )。

关于react-native - 如何将 JSON 快速插入到 React Native 应用程序的 Realm 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50937202/

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