yzh*_*ou5 6 realm react-native
我正在使用 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"}]
Run Code Online (Sandbox Code Playgroud)
在 Realm 中如何插入一个条目有很多示例,例如:
realm.write(() => {
Event.push({EventID: 3769, EventName: 'Birthday Party'});
Event.push({EventID: 4232, EventName: 'Homecoming'});
});
Run Code Online (Sandbox Code Playgroud)
但是有没有办法一次将 JSON 批量插入到 Realm 表中?
非常感谢!!!
更新- 有效!
我已经用下面的代码尝试了 geisshirt 的解决方案(谢谢!)。导入一个包含 50,000 个实体的 JSON 字符串大约需要 10 秒。(每个实体都有 ID、名称和日期属性)。一个技巧是调试模式比在真正的应用程序上运行要慢得多。
反应本机代码:
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);
});
});
})
Run Code Online (Sandbox Code Playgroud)
再次感谢!
你可以这样做:
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);
});
});
Run Code Online (Sandbox Code Playgroud)
您将所有对象插入一个事务中 ( realm.write())。
| 归档时间: |
|
| 查看次数: |
3789 次 |
| 最近记录: |