Reputation: 6851
I have JSON data from website. I made the main dictionary and I can parse every data except one sub dictionary. I get the error "Swift: Could not cast value of type '__NSCFArray' to 'NSDictionary'"
This example of my data. I cannot parse "weather" but I can parse all other dictionaries like "wind"
.
["name": Mountain View, "id": 5375480, "weather": (
{
description = "sky is clear";
icon = 01n;
id = 800;
main = Clear;
}
), "base": cmc stations, "wind": {
deg = "129.502";
speed = "1.41";
Snippet of code
let windDictionary = mainDictionary["wind"] as! [String : AnyObject
let speed = windDictionary["speed"] as! Double
print(speed)
let weather = mainDictionary["weather"] as! [String : AnyObject]
print(weather)
Upvotes: 3
Views: 14641
Reputation: 22374
on behalf your comment...I would say windDictionary is Dictionary...
Dictionary denotes in JSON with {} and
Array denotes with [] // In printed response you may have array with ()
So, your weather part is Array of Dictionary...You have to parse it like
let weather = mainDictionary["weather"] as! [[String : AnyObject]] // although please not use force unwrap .. either use `if let` or `guard` statement
Upvotes: 16