簡體   English   中英

快速在數組中插入一個對象

[英]Insert an Object inside an Array swift

我從 API 響應中得到一個對象,如下所示。

"Home":[
{
"type":"Something",
"id":"Something",
"interval":3,
"category":"Something",
"title":"Something",
"vc":[]
},
{
"type":"Something",
"id":"Something",
"TableFooterDisclaimer":"",
"category":"Something",
"title":"Something",
"vc":[
{
"Something":"Something",
"id":0,
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
},
{
"Something":"Something",
"id":1,
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
},
{
"Something":"Something",
"id":2,
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
}
]
},

我正在嘗試再插入一條如下所示的記錄。

let object : [String : Any] = [
"Something":"Something",
"id":1,
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
]

我試圖將這個object插入到Home的第一個索引的vc數組中,如下所示,但遇到了問題。

if let serverArray = info["Home"] as? [[String: AnyObject]] {
     self.myArray = serverArray
     self.myArray![1]["vc"]?.insert(self.object, at: 0)
}

我曾嘗試將 let object : [String:Any] 轉換為 [String:AnyObject] 但這也不起作用。

你可以嘗試這樣的事情:

if var serverArray = info["Home"] as? [[String: Any]] {
    if serverArray.count > 1 {
        var vcs = serverArray[1]["vc"] as? [[String: Any]]
        vcs?.insert(self.object, at: 0)
        serverArray[1]["vc"] = vcs
    }
    self.myArray = serverArray
}

但它有點丑。

像@JoakimDanielson 評論的那樣使用Codable 和 JSONDecoder會更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM