Swift 三方包 swiftyJSON 的使用
当你需要在 Swift 项目中处理 JSON 数据时,SwiftyJSON 是一个强大且易用的工具。它提供了一种简单的方式来解析和操作 JSON 数据,避免了繁琐的手动解析过程。本篇博客将介绍 SwiftyJSON 的基本使用方法,以及一些需要注意的事项,帮助你更好地使用 SwiftyJSON 处理 JSON 数据。SwiftyJSON 是一个轻量级的 Swift 库,用于处理 JSON 数据。它通过提供易于使用的 API,让你可以快速地解析和操作 JSON,无需繁琐的类型转换和错误处理。
cocoapods 依赖引入
pod 'SwiftyJSON', '~> 5.0'
swiftyJSON 使用
引入依赖
import SwiftyJSON
准备数据
let jsonStr = "{\"origin\":{\"error\":0.002215790096670389,\"time\":0.04535689949989319},\"pareto\":[0],\"variant\":[{\"error\":0.005277779884636402,\"frag\":\"1000/224/22150/simplShaderData/SIMPL_SHADER-15369/frag_0_43m.glsl\",\"index\":43,\"loop\":0,\"time\":-0.1039699986577034,\"vert\":\"1000/224/22150/simplShaderData/SIMPL_SHADER-15369/vert_0_43m.glsl\"},{\"error\":0.005277779884636402,\"frag\":\"1000/224/22150/simplShaderData/SIMPL_SHADER-15369/frag_0_45m.glsl\",\"index\":45,\"loop\":0,\"time\":-0.10127600282430649,\"vert\":\"1000/224/22150/simplShaderData/SIMPL_SHADER-15369/vert_0_45m.glsl\"}]}" if let data = jsonStr.data(using: .utf8) { if let json = try? JSON(data: data) { //todo } }
//根据 json path 来获取值
//从一个数组中获取 int let paretoVal = json["pareto"][0].intValue //获取一个json 数组的某个 key 组成的字符串 let vertArr = json["variant"].arrayValue.map{ $0["vert"].stringValue} //自定义 key path 来访问 let key : [JSONSubscriptType] = ["variant", 0 , "time"]; let time = json[key].doubleValue; // Just the same let name = json["variant"][0]["time"].doubleValue; // Alternatively let name = json["variant", 0 , "time"].doubleValue; //遍历json for (key,subJson):(String, JSON) in json { print("key = \(key)"); print("val = \(subJson)"); } //如果 json 是数组 let jsonArray: JSON = [ ["name": "Alice", "age": 25], ["name": "Bob", "age": 28] ] for (i,subJson):(String, JSON) in jsonArray { print("key = \(i)"); print("val = \(subJson)"); } //注意,i 的类型一直都是 String ,尽管json是个数组
SwiftyJSON 是一个强大的 Swift 库,可以大大简化 JSON 数据的解析和操作过程。通过安装、导入和使用 SwiftyJSON,你可以轻松地处理 JSON 数据,使你的 Swift 项目开发更加高效。然而,在使用过程中要注意错误处理、数据类型、可选值和性能等方面的问题。