[英]xCode, Swift 3.0 JSON parse string response
我正在尝试获取状态代码并将其放入 if 语句中。 此代码将在 Xcode Playground 中运行。
现在状态返回为["200"]并用方括号括起来。 如果我删除括号,它会返回nil 。
如何将状态返回为200并将其放入 if 语句中?
import Foundation
let str = "{\"names\": [\"Bob\", \"Tim\", \"Tina\"],\"status\":[\"200\"],\"message\":\"User has been created\",\"id\":null,\"username\":\"asdf\"}"//"{\"names\": [\"Bob\", \"Tim\", \"Tina\"]}"
let data = str.data(using: String.Encoding.utf8, allowLossyConversion: false)!
do {
let json = try JSONSerialization.jsonObject(with: data, options: []) as! [String: AnyObject]
let status = json["status"] as? [String]
} catch let error as NSError {
print("Failed to load: \(error.localizedDescription)")
}
您忘记了\\"status\\"
”后的“ : \\"status\\"
let str = "{\"names\": [\"Bob\", \"Tim\", \"Tina\"],\"status\":[\"200\"],\"message\":\"User has been created\",\"id\":null,\"username\":\"asdf\"}"//"{\"names\": [\"Bob\", \"Tim\", \"Tina\"]}"
编辑:见下面OP的评论
它返回["status"] ,这是完全正常的,因为您的json
对象是一个String
Array
( [String]
)。 要获得200
您必须获取此数组的第一个对象:
if let array = json["status"] as? [String]
{
let code = array.first // Here, code should be 200
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.