在ios swift 3.0中解析json对象的数组
正在尝试在iOS swift 3.0中解析JSON数组。但在XCode中,我总是看到这个错误: 类型“NSFastEnumerationIterator.Element”(也称为“Any”)没有下标成员 我试图分析的数组如下所示:在ios swift 3.0中解析json对象的数组,ios,json,swift3,Ios,Json,Swift3,正在尝试在iOS swift 3.0中解析JSON数组。但在XCode中,我总是看到这个错误: 类型“NSFastEnumerationIterator.Element”(也称为“Any”)没有下标成员 我试图分析的数组如下所示: [{"area_code":1,"area_name":"value"},{"area_code":2,"area_name":"value"},{"area_code":3,"area_name":"value"},{"area_code":4,"area_name
[{"area_code":1,"area_name":"value"},{"area_code":2,"area_name":"value"},{"area_code":3,"area_name":"value"},{"area_code":4,"area_name":"value"}]
iOS的代码片段如下所示
let json = try!JSONSerialization.jsonObject(with: data!, options: .mutableLeaves) as? NSArray
// The JSONObjectWithData constructor didn't return an error. But, we should still
// check and make sure that json has a value using optional binding.
if let parseJSON = json {
for dayData in parseJSON{
let areaObj = AreaCode()
if let areaCode = dayData["area_code"] as? Int{
areaObj.areaCode = areaCode
}
if let areaName = dayData["area_name"] as? String{
areaObj.areaName = areaName
}
areaCodeArray.append(areaObj)
}
DispatchQueue.main.async(execute: {
// perform on main
self.onGetAreaList("Success");
});
}
用
[[String:Any]]
代替NSArray
let json = try! JSONSerialization.jsonObject(with: data!, options: []) as? [[String:Any]]
for dayData in json{
let areaObj = AreaCode()
if let areaCode = dayData["area_code"] as? Int{
areaObj.areaCode = areaCode
}
if let areaName = dayData["area_name"] as? String{
areaObj.areaName = areaName
}
areaCodeArray.append(areaObj)
@你救了我一天。谢谢。为什么要将选项作为[]传递?如果不想使用任何选项,请使用空数组@Zain,因为选项需要一种类型的数组来传递