如何在swift4中使用数组将json数据显示到tableview中?

时间:2018-03-23 11:30:47

标签: json swift

我尝试在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很复杂

请提前给我解决方案

1 个答案:

答案 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)
            }
        }
    }