gpt4 book ai didi

json - Swift 中不可读的 JSON 答案

转载 作者:行者123 更新时间:2023-11-28 07:30:45 25 4
gpt4 key购买 nike

我正在使用此代码向 api 发送发布请求:

@IBAction func loadServicesTestButton(_ sender: UIButton) {

DispatchQueue.main.async {

let headers = [
"content-type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"postman-token": "dded3e97-77a5-5632-93b7-dec77d26ba99"
]
let postData = NSMutableData(data: "data={\"user_id\":\"1\",\"type_id\":\"2\"}".data(using: String.Encoding.utf8)!)
let request = NSMutableURLRequest(url: NSURL(string: "http://www.api.com")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error!)
} else {
if let dataNew = data, let responseString = String(data: dataNew, encoding: .utf8) {
print(responseString)

}

}

})

dataTask.resume()
}

}

作为回答,我得到了这样不可读的 JSON:

{"status":"ok","answer":{"address":"\u041a\u0430\u043c\u044b\u0448\u0438, \u0434\u043e\u043c 98","created_at":"2019-02-12 12:48:24","updated_at":"2019-02-21 08:58:30","name":"\u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440 \u041a\u0443\u0437\u044c\u043c\u0438\u043d","user_type":1}}

如何编码这个答案以获得可读的内容?我试过 JSONSerialization 但没有用。任何想法?我的函数中的示例代码将不胜感激。感谢大家的时间和努力。

最佳答案

你可以试试

do {

let form = DateFormatter()

form.dateFormat = "yyy-MM-dd HH:mm:ss"

let dec = JSONDecoder()

dec.keyDecodingStrategy = .convertFromSnakeCase

dec.dateDecodingStrategy = .formatted(form)

let res = try dec.decode(Root.self,from:dataNew)

print(res)
}
catch {

print(error)
}

struct Root: Codable {
let status: String
let answer: Answer
}

struct Answer: Codable {
let address, name: String
let createdAt, updatedAt: Date
let userType: Int
}

这个

DispatchQueue.main.async {

应该在任何 UI 更新的回调中,因为默认情况下 session.dataTask(with: 在后台线程中运行

关于json - Swift 中不可读的 JSON 答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54803966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com