Ios Swift:访问post请求接收的JSON

Ios Swift:访问post请求接收的JSON,ios,json,swift,http,post,Ios,Json,Swift,Http,Post,我正在尝试访问此post请求的返回值。我设置了一个断点,并看到jsonString确实获得了正确的值。但是,当我尝试将self.submitView.text设置为任意值时,会出现以下错误: let task = URLSession.shared.dataTask(with: postRequest) { data, response, error in guard let data = data, error == nil else { pri

我正在尝试访问此post请求的返回值。我设置了一个断点,并看到jsonString确实获得了正确的值。但是,当我尝试将self.submitView.text设置为任意值时,会出现以下错误:

    let task = URLSession.shared.dataTask(with: postRequest) { data, response, error in
        guard let data = data, error == nil else {
            print(error?.localizedDescription ?? "NoData")
            return
        }
        let jsonString = String(data: data, encoding: String.Encoding.utf8)!
        self.submitView.text = jsonString
    }
    task.resume()

这不是我在UI中将其指定给文本视图时打印的内容。。是否将转义序列转换为文字字符?

您正在后台线程上设置UITextField的text属性

您需要确保所有UI工作都在主线程上完成,您可以使用

更新:

数据实际上就是通过网络发送的数据,您需要对其进行转换和反序列化

您可以使用类似的方法执行此操作:

这试图将数据转换为JSON对象,在Swift中,JSON对象通常转换为dictionary对象

Swift可用的网络上有大量资源。我强烈推荐的一个方法是,这需要花费相当多的时间来完成和学习,所以这里有一些更快完成的方法

更新

此代码适用于我:

// I create some dummy JSON string for example purposes
let data = "{ \"name\": \"John Smith\"}".data(using: String.Encoding.utf8)!

if let jsonObject = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String:AnyObject] {
    print(jsonObject["name"] as! String)
}

请提供json示例谢谢!这很有效。顺便问一下,你能给我解释一下什么是“数据”吗?XCODE告诉我它属于“数据”类型。返回类型应该是JSON,现在我正试图将其反序列化为一个对象,但我正在努力处理类型。嘿,谢谢你的详细回答!不幸的是,我已经尝试过类似的方法,但没有成功(我逐字逐句地尝试了您的解决方案以进行双重检查)
do{let info=try JSONSerialization.jsonObject(with:data,options:[])as?[String:Any]}catch{DispatchQueue.main.async{self.submitView.text=“ERROR”}
这将导致打印“ERROR”,意思是JSONSerialization抛出了一个异常。请显示您在上面的问题中使用的JSON。我已将JSON添加到我的原始帖子底部。使用与上面相同的JSON?
Optional("\"{\\\"raw\\\":\\\"Schedule for John in New York on Monday\\\",\\\"location\\\":\\\"new york\\\",\\\"date\\\":\\\"6/26/2017 12:00:00 AM\\\",\\\"name\\\":\\\"john\\\",\\\"errorResponse\\\":null,\\\"stripTest\\\":\\\" for john in new york on monday \\\"}\"")
DispatchQueue.main.async {
    self.submitView.text = jsonString
}
// I create some dummy JSON string for example purposes
let data = "{ \"name\": \"John Smith\"}".data(using: String.Encoding.utf8)!

if let jsonObject = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String:AnyObject] {
    print(jsonObject["name"] as! String)
}
let data = "{\"raw\":\"schedule for John in New York on Monday\",\"location\":\"New York\",\"date\":\"Mon, June 26\",\"name\":\"john\",\"errorResponse\":null,\"stripTest\":\"for John in new york on Monday\"}".data(using: String.Encoding.utf8)!

if let jsonObject = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String:AnyObject] {
    print(jsonObject)
    print(jsonObject["name"] as! String)
}