【问题标题】:Can't create dictionary from json in swift [duplicate]无法在swift中从json创建字典[重复]
【发布时间】:2016-09-30 16:53:14
【问题描述】:

我有这个由dataTaskWithRequest下载的json对象,我下载它并像这样序列化它:

let json = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) as? [String:AnyObject]
completion(json)

那么完成看起来像这样:

(let json) in
if let dict = JSON{
    completion(dict)
}

最后的完成是这样的:

(let response) in
dispatch_async(dispatch_get_main_queue()){
    if let resp = response{
        if resp["status"] as? Int == 0{
            let user = resp["user"]
            if let dict = user{
                print(dict)
            }
        }    
    }
}

问题是,它返回的对象是这样的:

 {"created": "2016-06-01T10:49:54.096000",
 "data_source": "1",
 "display_name": "My Name",
 "email": "Some@string.com",
 "fb_id": "",
 "first_name": "My",
 "gender": "0",
 "google_id": "",
 "id": "SomeId",
 "last_name": "Name",
 "phone": "Number",
 "updated": "2016-06-01T10:49:54.096000"}

当我尝试在 [String:AnyObject] 中转换此对象时,它返回 nil,我无法从最后一个对象中获取值,谁能帮我解决这个问题,我一直在尝试这样做4小时没搞定

【问题讨论】:

  • 你在第 1 步得到 nil 吗?
  • 如果让 dict = user as? [字符串:任何对象]
  • 把用户的真实打印出来可能有帮助
  • 这是用户的真实打印
  • 这个打印像一个字符串而不是一个字典,如果它是一个字典可能打印看起来像 { "key" = "value" }

标签: json swift object dictionary response


【解决方案1】:

试试这个:

if let dictString = user as? String{
        if let data = dictString.dataUsingEncoding(NSUTF8StringEncoding){

            let dic = try! NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments)
            print(dic)
        }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 1970-01-01
    相关资源
    最近更新 更多