如何在 json 文件中插入和删除对象 swift.



所以我有这个json,它有一些对象的数组。

[
{
"id": 1,
"title": "First Object"
},
{
"id": 2,
"title": "Second Object"
},
{
"id": 3,
"title": "Third Object"
}
]

我正在使用以下代码解析 json,

struct MyModel: Codable {
let id: Int?
let title: String?
}
var myModel = [MyModel]()
func decodeData(url: URL) {
do {
let jsonData = try Data(contentsOf: url)
let decoder = JSONDecoder()
myModel = try decoder.decode([MyModel].self, from: jsonData)
} catch let jsonError {
print("Error serializing json", jsonError)
}
}

在读取 json 时,一切正常。我似乎可以弄清楚的是如何删除对象并将其插入到同一个 json 文件中。

例如,删除"id"=2 的对象,或者在 "id"=3 的对象之后或"id"=1 和 "id"=2 的对象之间插入一个新对象。

我当时想的是将整个json文件读入一个数组。然后通过删除和附加数组中的元素,然后用修改后的数组中的所有内容覆盖 json 文件来修改数组中的数据。

出于某种原因,这种方法似乎并不实用。对于少量对象可能没问题,但是如果/当对象数量达到 100+ 范围内的数字时会发生什么。

我是否采取了正确的方法,将 json 文件的内容读取到数组中,然后用修改数组的内容修改和覆盖 json 文件,或者是否有适当的方法来实现这一点?

您可以使用这段代码从字典中删除任何对象,将json转换为字典。

if let index = values.index(forKey: id) {
values.remove(at: index)
}

以同样的方式,您可以获取要插入新对象的特定对象的索引。

最新更新