Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在json文件swift中插入和删除对象_Ios_Arrays_Json_Swift - Fatal编程技术网

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

Ios 如何在json文件swift中插入和删除对象,ios,arrays,json,swift,Ios,Arrays,Json,Swift,我有一个json,它有一些对象的数组 [ { "id": 1, "title": "First Object" }, { "id": 2, "title": "Second Object" }, { "id": 3, "title": "Third Object" } ] 我正在用以下代码解析json struct MyModel: Codable {

我有一个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文件,或者是否有适当的方法来实现这一点

重新编写整个文件几乎是唯一的方法。即使是100个项目也不是很多,但你可能想考虑这是否是最好的方式来存储您的数据。核心数据或其他一些数据存储可能会更好。尽管我正在查看核心数据的文档和教程,但似乎对此束手无策,但同时我想了解更多关于如何使用swift处理json的信息,因此这更像是一个学习练习。我可以始终使用类似SwiftyJSON的东西进行East Jain序列化和元素处理。