SwiftyJSON

SwiftyJSON

SwiftyJSON是一个开源的库,能够帮助开发者在Swift中更轻松地使用JSON。Swift对类型非常严格,所以在Swift中处理JSON非常困难。SwiftyJSON提供了一种更好的处理JSON数据的方法。

SwiftyJSON是一个Swift框架,旨在解决常规JSON序列化中不需要使用可选链的问题。

在Swift中处理JSON的问题

在使用SwiftyJSON之前,让我们看看开发者在Swift中处理JSON时可能遇到的烦恼。例如,如果你要在一个JSON对象中找到第一本书的名称,你的代码可能会像下面这样:

  if let jsonObject = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) as? [[String: AnyObject]],
let bookName = (jsonObject[0]["book"] as? [String: AnyObject])?["name"] as? String {
    //Now, you can use the book name
}

你可以看到上面的代码非常复杂且不易阅读。

通过使用SwiftyJSON,代码将被大大简化,如下所示:

let json = JSON(data: data)
if let bookName = json[0]["book"]["name"].string {
    //Now, you can use the book name
}

SwiftyJSON消除了检查每个字段的要求,如果它们中的任何一个无效,则返回nil。

下载SwiftJSON

您可以直接从GitHub下载或克隆SwityJSON:

https://github.com/SwiftyJSON/SwiftyJSON

如何使用SwiftyJSON

要使用SwiftyJSON,您需要从Git存储库中下载正确的版本。只需将”SwiftyJSON.swift”拖到您的项目中并导入到您的类中即可:

import SwiftyJSON

您可以通过使用初始化函数来创建自己的JSON对象。有两种方法可以创建自己的JSON对象:

let jsonObject = JSON(data: dataObject)

或者

let jsonObject = JSON(jsonObject) //This could be a string in a JSON format for example

你可以使用下标来访问你的数据。

let firstObjectInAnArray = jsonObject[0]
let nameOfFirstObject = jsonObject[0]["name"]

您可以将您的值解析为特定的数据类型,它将返回一个可选值:

let nameOfFirstObject = jsonObject[0]["name"].string //This will return the name as a string
let nameOfFirstObject = jsonObject[0]["name"].double //This will return null

您也可以将您的路径编译成一个swift数组:

let convolutedPath = jsonObject[0]["name"][2]["lastName"]["firstLetter"].string 

与下面的相同:

let convolutedPath = jsonObject[0, "name", 2, "lastName", "firstLetter"].string

SwiftyJSON有打印自己错误的功能:

if let name = json[1337].string {
    //You can use the value - it is valid
} else {
    print(json[1337].error) // "Array[1337] is out of bounds" - You cant use the value
}

如果您需要向您的JSON对象写入内容,您可以再次使用下标:

var originalJSON:JSON = ["name": "Jack", "age": 18]
originalJSON["age"] = 25 //This changes the age to 25
originalJSON["surname"] = "Smith" //This creates a new field called "surname" and adds the value to it.

如果您需要JSON的原始字符串,例如如果您需要将其写入文件,您可以使用原始值获取它。

if let string = json.rawString() { //This is a String object
    //Write the string to a file if you like
}
if let data = json.rawData() { //This is an NSData object
    //Send the data to your server if you like
}

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程