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

von4xj4u  于 2022-12-15  发布在  iOS
关注(0)|答案(1)|浏览(122)

所以我有一个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文件的内容读入一个数组,然后用modify数组的内容修改并覆盖json文件,我是否采取了正确的方法,或者是否有一种正确的方法可以实现这一点?

vybvopom

vybvopom1#

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

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

用同样的方法你可以得到你想插入新对象的特定对象的索引。

相关问题