Swift 三方包 swiftyJSON 的使用

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 当你需要在 Swift 项目中处理 JSON 数据时,SwiftyJSON 是一个强大且易用的工具。它提供了一种简单的方式来解析和操作 JSON 数据,避免了繁琐的手动解析过程。本篇博客将介绍 SwiftyJSON 的基本使用方法,以及一些需要注意的事项,帮助你更好地使用 SwiftyJSON 处理 JSON 数据。SwiftyJSON 是一个轻量级的 Swift 库,用于处理 JSON 数据。它通过提供易于使用的 API,让你可以快速地解析和操作 JSON,无需繁琐的类型转换和错误处理。

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 项目开发更加高效。然而,在使用过程中要注意错误处理、数据类型、可选值和性能等方面的问题。

相关文章
|
6月前
|
安全 Swift
在Swift中,解包
在Swift中,解包
189 3
|
Swift iOS开发
iOS开发 - 适合工程多环境切换(swift环境),适合经常打很多不同环境包的人
iOS开发 - 适合工程多环境切换(swift环境),适合经常打很多不同环境包的人
291 0
iOS开发 - 适合工程多环境切换(swift环境),适合经常打很多不同环境包的人
|
程序员 API Swift
swift微博第11天(三方框架的导入和手动导入的桥接以及swift单粒)
swift微博第11天(三方框架的导入和手动导入的桥接以及swift单粒)
174 0
swift微博第11天(三方框架的导入和手动导入的桥接以及swift单粒)
|
JSON 数据格式 Swift
【swift学习笔记】四.swift使用Alamofire和swiftyJson
  Alamofire是AFNetworking的swift版本,功能灰常强大。 github:https://github.com/Alamofire/Alamofire   SwiftyJSON是操作json的非常棒的开源库 github:https://github.
1229 0
|
JSON 数据格式 iOS开发
[快速学会Swift第三方库] SwiftyJSON篇
[快速学会Swift第三方库] SwiftyJSON篇 SwiftyJSON使得用Swift处理JSON数据更加容易。这是解析JSON字符串封装类。实现功能与Javascript中的JSON.parse相近,使用方便。 目录 快速学会Swift第三方库 SwiftyJSON篇 目录 编码之前 导入SwiftyJSON 其他操作 解析本地JSON 示
3192 0
|
4月前
|
Unix 调度 Swift
苹果iOS新手开发之Swift 中获取时间戳有哪些方式?
在Swift中获取时间戳有四种常见方式:1) 使用`Date`对象获取秒级或毫秒级时间戳;2) 通过`CFAbsoluteTimeGetCurrent`获取Core Foundation的秒数,需转换为Unix时间戳;3) 使用`DispatchTime.now()`获取纳秒级精度的调度时间点;4) `ProcessInfo`提供设备启动后的秒数,不表示绝对时间。不同方法适用于不同的精度和场景需求。
142 3
|
16天前
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户点击按钮时,按钮将从圆形变为椭圆形,颜色从蓝色渐变到绿色;释放按钮时,动画以相反方式恢复。通过UIView的动画方法和弹簧动画效果,实现平滑自然的过渡。
31 1
|
25天前
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
【10月更文挑战第18天】本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户按下按钮时,按钮将从圆形变为椭圆形并从蓝色渐变为绿色;释放按钮时,动画恢复原状。通过UIView的动画方法和弹簧动画效果,实现平滑自然的动画过渡。
47 5