Reputation: 2512
I'm getting an Object from API response which looks something like below.
"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",
}
]
},
I'm trying to insert one more record which looks like below.
let object : [String : Any] = [
"Something":"Something",
"id":1,
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
"Something":"Something",
]
This object
I'm trying to insert inside vc
array of the 1st index of Home
, like below but getting issues.
if let serverArray = info["Home"] as? [[String: AnyObject]] {
self.myArray = serverArray
self.myArray![1]["vc"]?.insert(self.object, at: 0)
}
I have tried converting let object : [String:Any] to [String:AnyObject] but that also didn't work.
Upvotes: 0
Views: 607
Reputation: 8327
You can try something like this:
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
}
But it's a little ugly.
Using Codable and JSONDecoder like @JoakimDanielson commented will be better.
Upvotes: 1