【问题标题】:xCode, Swift 3.0 JSON parse string responsexCode,Swift 3.0 JSON 解析字符串响应
【发布时间】:2016-10-04 12:25:08
【问题描述】:

我正在尝试获取状态代码并将其放入 if 语句中。此代码将在 Xcode 游乐场中运行。

现在状态返回为 ["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)")
}

【问题讨论】:

    标签: ios json xcode swift3


    【解决方案1】:

    你在\"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 对象是 StringArray ( [String] )。要获取200,您必须获取该数组的第一个对象:

    if let array = json["status"] as? [String]
    {
       let code = array.first // Here, code should be 200
    }
    

    【讨论】:

    • 啊,是的,当我写这个问题时,这是一个错字。我的代码有冒号,所以我仍然得到响应 ["200"]
    猜你喜欢
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 2023-03-07
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    相关资源
    最近更新 更多