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