我尝试在swift 4中将JSON数据显示到tableview中。我为此编写了一个代码,但是我收到了一个错误并导致我的项目崩溃
我的程序崩溃的代码
let jsonResult = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments ) as! [String : NSArray] //crashed on this line
if let arrJSON = jsonResult["JsonArray"] {
for index in 0...arrJSON.count-1 {
let aObject = arrJSON[index] as! [String : AnyObject]
self.array.append(aObject["name"] as! String) as! String
}
}
我收到了一个错误。
无法将'NSTaggedPointerString'类型的值转换为'NSArray'。
如何解决这个问题,请告诉我在哪里可以找到在tableview上显示儿子数据的正确方法,因为我的json很复杂
请提前给我解决方案
答案 0 :(得分:0)
如果您确定要以与解析相同的格式获取数据([String:[[String:AnyObject]]])。然后您可以使用以下模式:
使用"选项:[]"而不是使用"选项:.allowFragments"
还可以尝试使用"选项:.mutableLeaves" &安培; "选项:.mutableContainers"如果没有成功
if let jsonResult = try JSONSerialization.jsonObject(with: data, options: []) as? [String: [[String : AnyObject]]], let arrJSON = jsonResult["JsonArray"] {
for index in 0...arrJSON.count - 1 {
let aObject = arrJSON[index]
if let name = aObject["name"] as? String {
self.array.append(name)
}
}
}