Swift 使用SwiftyJSON解析JSON数据

前言:

在iOS里面解析json数据某种程度上并没有Android上面使用JOSN方便。但第三方开源框架诸如SwiftyJSON的到来,尤其是配合Swift5等以上版本,对应用程序而言数据安全性方面有很大的提升。

SPM导入依赖:

https://github.com/SwiftyJSON/SwiftyJSON

使用步骤:

首先先模拟一下JSON数据的获取,这里直接定义。
然后把json数据转换成Data。
接着就使用SwiftyJSON直接把数据解析。需要说明的是,如果没有把解析放在if里面那么解析的数据就是Optional类型。
这里由于定义的是两层json,故for循环里面直接调用解析后的数据[数据下标索引][键].string来获取每个值对。

func paserJSON(){
    // Create test json data.
    var data = "[{\"id\":\"2012001\",\"name\":\"FlyToy\",\"price\":\"100\"},{\"id\":\"2012002\",\"name\":\"FlyBoat\",\"price\":\"200\"},{\"id\":\"2012003\",\"name\":\"MiniBoat\",\"price\":\"300\"},{\"id\":\"2012004\",\"name\":\"House\",\"price\":\"400\"},{\"id\":\"2012005\",\"name\":\"test1\",\"price\":\"500\"},{\"id\":\"2012006\",\"name\":\"test2\",\"price\":\"600\"}]"
    
    // Transfer json into data.
    let jsonData = data.data(using: .utf8)
    
    // Paser json data with SwiftyJSON by JSON().
    let transferData = JSON(jsonData)
    
    // Get data directly.
    var name = transferData[1]["name"].string
    print("------> FUNC: \(name!)")
    
    // Loop data.
    for i in 0..<6 {
        print("------> \(transferData[i]["id"].string!)")
        print("------> \(transferData[i]["name"].string!)")
        print("------> \(transferData[i]["price"].string!)")
        print("\n")
    }
}

你可能感兴趣的:(iOS,json,ios,swift,xcode)