簡體   English   中英

無法獲取JSON的值-Swift

[英]Unable to get the value of JSON - Swift

我試圖從json響應中獲取“種子”的值。 但是我越來越沒有了。

Json回應:

{
        "response": {
            "params": {
                "rows": "20",
                "defType": "abc",
                "seed": "381786611"
            }
        }
    }

快速解析:

if let responseHeader:AnyObject = object?["response"] as? NSDictionary {
    if let t = (responseHeader["params"] as? NSDictionary){
       let t1 = t["seed"] as? String
       println("result is \(t1)") // This returns nil
     }
}

傑森解析

 func processJsonToDictionary(object:AnyObject?) -> AnyObject?{
        if object != nil {
            if let data: AnyObject = object {
                var parseError: NSError?

                var jsonResult = NSJSONSerialization.JSONObjectWithData(object as NSData!, options: NSJSONReadingOptions.MutableContainers, error: &parseError) as? NSDictionary
                if(parseError != nil){
                    return parseError
                }
                else{
                    return jsonResult
                }
            }
        }
        return nil
    }

我無法獲得t1的值。 它總是返回nil。 我如何獲得價值。

另外,我設置了一個斷點並嘗試打印t1的值。 但是Xcode一直崩潰。 為什么?

我認為這里的主要問題只是快速訪問JSON對象。

var error: NSError?
let jsonDict = NSJSONSerialization.JSONObjectWithData(jsonData, options: nil, error: &error) as NSDictionary
let resp = jsonDict["response"] as? NSDictionary
let params = resp?["params"]?["seed"]
let seed = params!! as NSString

這只是向您展示如何快速訪問JSON對象。 當然,您可以根據需要進行更改,以刪除不需要的“可選鏈接”。

為了在Swift中輕松進行JSON操作,您可以嘗試使用這個小庫。 看起來很簡單,您可以執行以下操作:

var dictionary: [String: AnyObject]!
if let json = NKJSON.parse(yourNSDataObject) {
    dictionary <> json[NKJSON.rootKey]
}

首先確認您得到的響應是json格式還是字符串格式。 對於json解析,您可以使用swifty json pod

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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