SwiftyJSON 字典解析

Posted

技术标签:

【中文标题】SwiftyJSON 字典解析【英文标题】:SwiftyJSON dictionary parsing 【发布时间】:2015-02-10 02:45:27 【问题描述】:

我正在尝试使用 SwiftyJSON 解析来自服务器的一些数据。

例如,假设从服务器返回的 JSON 是:

     
 "data":  
     "id":"92",
     "name":"harry",
     "username":"Hazza"
   ,
 "error":false

我想获取用户名字符串,为此我使用以下方法获取数据对象:

let data = json["data"].dictionaryValue

然后为了获取我希望能够做到的用户名字符串

let username = data["username"].stringValue

但是,这会返回一个错误,提示“(String, JSON) 没有名为“.stringValue”的成员。

这个看似简单的问题我哪里出了问题?

谢谢。

【问题讨论】:

【参考方案1】:

你应该做的是:

if let username = json["data"]["username"].string 
    println(username)

【讨论】:

感谢您的回答。但是,根据 README.md,在非可选的 getter 下,似乎确实可以使用 stringValue。 github.com/SwiftyJSON/SwiftyJSON#non-optional-getter【参考方案2】:

虽然上述方法可行,但真正的问题是您需要解压 dict 值:

let username = data["username"]!.stringValue

【讨论】:

【参考方案3】:

对于 Swift 3/4

guard let username = json["data"]["username"].string else  return nil 

【讨论】:

以上是关于SwiftyJSON 字典解析的主要内容,如果未能解决你的问题,请参考以下文章

SwiftyJSON 并添加到现有的 [String: AnyObject] 字典

使用 SwiftyJSON 遍历数组字典字典

删除 SwiftyJSON 数组中的字典记录

Swift - 使用 swiftyJSON 根据字典中的值查找字典数组的索引

SwiftyJSON 打印字典数组中的所有值

SwiftyJson 从字典中的数组中获取值