使用Alamofire将JSON转换为Swift中的字典
问题描述:
我想使用Alamofire将JSON数据转换为Swift中的Dictionary。 我正在尝试if let dict = response.result.value as? Dictionary<String, AnyObject> { ... }
,不幸的是它不起作用。有什么建议么?提前致谢。这是例如打印我response.result.value
使用Alamofire将JSON转换为Swift中的字典
Optional(<__NSArrayI 0x6000002893d0>(
{
category = category1;
description = description1;
name = sth1;
id = 1;
price = "213";
type = type1;
},
{
category = category2;
description = description2;
name = sth2;
id = 2;
price = "2133";
type = type4;
},
{
category = category3;
description = description3;
name = sth3;
id = 3;
price = "21334";
type = type5;
}
)
)
答
您需要从您的JSON步步... 提取数据,你可以不喜欢这样。
if let arrayOfDic = response.result.value as? [Dictionary<String,AnyObject>]{
for aDic in arrayOfDic{
print(aDic)//print each of the dictionaries
if let price = aDic["price"] as? String{
print(price)//print price of each dic
}
}
}
答
因为你的反应是一个数组,所以你需要创建一个字典的数组。只有字典不会从你的上述回应中起作用。 因此,改变下面的代码。
if let dict = response.result.value as? [[String : AnyObject]]
{ ... }
为什么不使用[ObjectMapper](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwipqdDNzqPRAhWPN1AKHeXAA7wQFggbMAA&url=https%3A%2F %2Fgithub.com%2FHearst-DD%2FObjectMapper&usg = AFQjCNFyUn25wAdc4YI3J79e10bh5EsWTQ)? –