如何在Swift中将响应字符串转换为NSMutableDictionary

时间:2016-05-24 12:58:09

标签: ios swift

响应字符串: {"status":"failure","message":"link_inactive"}

我希望NsmutableDictionaryNSDictionary具有相同的格式,以便我可以通过键值访问。

3 个答案:

答案 0 :(得分:1)

您可以通过NSJSONSerialization的JSONObjectWithData方法执行此操作。

 do {
    let jsonDict: NSDictionary? = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions(rawValue: 0)) as? NSDictionary
    if let jsonDict = jsonDict {
    print(jsonDict["message"])  

  } catch let error as NSError {
    // error handling
    debugLog(error)
  }

答案 1 :(得分:1)

使用此代码可以帮助您

func convertStringToDictionary(text: String) -> [String:AnyObject]? {
    if let data = text.dataUsingEncoding(NSUTF8StringEncoding) {
        do 
        {
            let json = try NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers) as? [String:AnyObject]
            return json
        } 
        catch 
        {
            print("error")
        }
    }
    return nil
}

答案 2 :(得分:0)

正如Eric D所说的原始代码:

https://stackoverflow.com/a/33173192/846780

试一试:

func convertStringToDictionary(text: String) -> [String:AnyObject]? {
    if let data = text.dataUsingEncoding(NSUTF8StringEncoding) {
        do {
            let json = try NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers) as? [String:AnyObject]
            return json
        } catch {
            print("Something went wrong")
        }
    }
    return nil
}

let string =  "{\"status\":\"failure\",\"message\":\"link_inactive\"}"

let dict = convertStringToDictionary(string) //["status": "failure", "message": "link_inactive"]