美文网首页程序员iOS DeveloperiOS学习笔记
SwiftCafe 快报 - 使用 SwiftyJSON 处理

SwiftCafe 快报 - 使用 SwiftyJSON 处理

作者: SwiftCafe | 来源:发表于2015-10-23 08:29 被阅读485次
SwiftyJSON

今天给大家介绍的 SwiftlyJSON 是一个用来处理 JSON 数据解析的第三方库。

说到 JSON 相信大家都很熟悉,我们平时开发几乎都离不开 JSON 数据的处理。

iOS 为我们提供了解析 JSON 的库 NSJSONSerialization,我们看看使用标准库的处理方法:

let JSONObject: AnyObject? = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil)

if let statusesArray = JSONObject as? [AnyObject],
   let status = statusesArray[0] as? [String: AnyObject],
   let user = status["user"] as? [String: AnyObject],
   let username = user["name"] as? String {
    // Finally we got the username
}

嗯,看起来可以用,但是不是感觉处理起来还是有点繁琐呢?

如果遇到使用 OptionalChaining 的情况就会变得更加混乱:

let JSONObject: AnyObject? = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil)

if let username = (((JSONObject as? [AnyObject])?[0] as? [String: AnyObject])?["user"] as? [String: AnyObject])?["name"] as? String {
    // What a disaster
}

这一连串的 as 转换和问号解包,让人感觉很混乱吧。

这就是 SwiftyJSON 这个库要解决的问题了。我们再来看一下使用 SwiftyJSON 来处理这个解析的代码:

let json = JSON(data: dataFromNetworking)
if let userName = json[0]["user"]["name"].string {
  //Now you got your value
}

是不是马上简单很多了。无论是可读性还是逻辑的清晰性都有了极大的提升。

并且您也不用担心错误处理和 Optional 解包的问题,SwiftlyJSON 已经帮您处理这个问题了:

let json = JSON(data: dataFromNetworking)
if let userName = json[999999]["wrong_key"]["wrong_name"].string {
    //Calm down, take it easy, the ".string" property still produces the correct Optional String type with safety
} else {
    //Print the error
    print(json[999999]["wrong_key"]["wrong_name"])
}

关于 SwiftyJSON 更详细的内容,可以查看它的 Github 主页:
https://github.com/SwiftyJSON/SwiftyJSON

更多精彩内容可关注微信公众号:
swift-cafe

相关文章

  • SwiftCafe 快报 - 使用 SwiftyJSON 处理

    今天给大家介绍的 SwiftlyJSON 是一个用来处理 JSON 数据解析的第三方库。 说到 JSON 相信大家...

  • swift 数据解析

    Swift:分别使用SwiftyJSON、ObjectMapper、HandyJSON处理JSON[https:/...

  • SwiftyJSON使用

    1,SwiftyJSON介绍与配置 SwiftyJSON是个使用Swift语言编写的开源库,可以让我们很方便地处理...

  • SwiftyJSON的使用详解

    1,SwiftyJSON介绍与配置 SwiftyJSON是个使用Swift语言编写的开源库,可以让我们很方便地处理...

  • SwiftCafe 快报 - Live Photos

    Live Photos 是 iOS 9 的一个新特性,它提供相对于传统照片更生动的展现方式。当用户按下拍照键的时候...

  • SwiftCafe 快报 - Array.contains

    而在 Swift 2.0 中,contains 被作为 Array 的一方法来使用了。所以我们只需这样调用即可: ...

  • SwiftCafe 快报 - 了解闭包

    闭包(Closure) 是现代开发语言的必备特性,极大的提高了我们的开发效率。 关于闭包,你可以把它理解为一种特殊...

  • SwiftCafe 快报 - defer 关键字

    defer 关键字也是 Swift 2.0 中提供的新语法,就像是上期中我们提到的 guard 关键字一样。都是 ...

  • SwiftyJSON使用

    注意是github中名字是 SwiftyJSON,因为用cocopoads搜索有很多类似的库,但是使用是有区别的 ...

  • 使用 Moya + ObjectMapper/Codable/S

    RainHttpManager 使用 Moya + ObjectMapper/Codable/SwiftyJSON...

网友评论

    本文标题:SwiftCafe 快报 - 使用 SwiftyJSON 处理

    本文链接:https://www.haomeiwen.com/subject/ufjthttx.html