gpt4 book ai didi

ios - 如何在 Realm 中从 JSON 创建同质对象列表

转载 作者:行者123 更新时间:2023-11-29 01:11:22 25 4
gpt4 key购买 nike

我有一个数组,很简单:[ [String: AnyObject] ] .这只是一个常规的 JSON 对象。数组中的所有对象都是同一类型的对象。我的字典看起来像这样:

[ { "firstName" : "Joe", "lastName": "Smith"}, {"firstName": "John", "lastName" : "Jones"} ]

我的 Realm 对象定义如下:

public class Person : Object {
public dynamic var firstName = ""
public dynamic var lastName = ""
}

我想将这个 JSON 转换为 List<Person> 类型的对象

理想情况下,我想做这样的事情:

let personList: List<Person> = unknown(arrayOfPersonDictionaries)

我意识到我可以构建一个循环来遍历 arrayOfPersonDictionaries 中的每个对象,并在每个对象上创建一个 Realm 对象。我只是想知道是否有更方便的方法来做到这一点。

最佳答案

你描述你想要一个 List<Person>作为返回类型。此类型用于管理 Realm Swift 中的关系。因此,如果您有另一个对象类,例如House有关系 residents , 然后你可以简单地创建一个对象,其中包含你的字典数组中与之相关的所有人员,如下所示:

class House : Object {
let residents = List<Person>()
}

try! realm.write {
let people = [ { "firstName" : "Joe", "lastName": "Smith"}, {"firstName": "John", "lastName" : "Jones"} ]
let house = realm.create(House.self, value: [ "residents": people ])
}

如果您只想为持久化对象列表获取一个合适的集合,您可以通过类似的方式实现:

try! realm.write {
let arrayOfPersonDictionaries = [ { "firstName" : "Joe", "lastName": "Smith"}, {"firstName": "John", "lastName" : "Jones"} ]
let people = arrayOfPersonDictionaries.map { realm.create(Person.self, value: $0) }
}

这将返回 Array<Person> .

关于ios - 如何在 Realm 中从 JSON 创建同质对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35707945/

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