簡體   English   中英

xCode、Swift 3.0 JSON 解析字符串響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM