BackspaceJSON 1.0.0

BackspaceJSON 1.0.0

Mark Smith 维护。



BackspaceJSON

Codable 使在 iOS 上消费 JSON 变得更加容易,但仍然有一些情况不适合使用,例如具有任意键值的配置文件。在这些情况下,您只想安全地访问值,而不是费很多事。

BackspaceJSON 是一个迷你(单个枚举,约 100 行)的 Swift 框架。

初始化

init(data: Data, options: JSONSerialization.ReadingOptions = .allowFragments) throws

从数据创建一个 JSON 对象。

let json = JSON(data: data)

遍历

subscript(index: Int) -> JSON
subscript(key: String) -> JSON

使用字符串和整数下标通过 JSON 对象的任何路径进行遍历。下标始终返回另一个 JSON 对象,因此不需要可选链。

json["first"][0]["second"][1]

var dictionary: [String: JSON]?
var array: [JSON]?
var string: String?
var number: NSNumber?
var double: Double?
var int: Int?
var bool: Bool?

使用可选属性从 JSON 对象中提取值。

json["key"][0].string

存在性

var exists: Bool
var existsNull: Bool
var existsNotNull: Bool

BackspaceJSON 区分 null 和缺失的值。

json["one"]["two"].exists        // If true, a value exists at this path (possibly null).
json["one"]["two"].existsNull    // If true, a null value exists at this path.
json["one"]["two"].existsNotNull // If true, a non-null value exists at this path.

示例

此代码从App Store获取应用程序的当前版本。

let url = URL(string: "http://itunes.apple.com/lookup?id=<YOUR_APP_ID>")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
  guard let data = data,
        let json = try? JSON(data: data),
        let currentVersion = json["results"][0]["version"].string else {
    print("Lookup failed.")
    return
  }

  print("Current version is \(currentVersion).")
}

task.resume()

安装

通过CocoaPods安装

pod "BackspaceJSON"

或者,只需将单个文件 BackspaceJSON/JSON.swift 复制到您的项目中。

许可证

MIT许可证。