iOS(Swift)学习笔记之SwiftyJSON的使用
2020-03-01 20:18
381 查看
本文为原创文章,转载请标明出处
1. 通过CocoaPods安装SwiftyJSON
platform :ios, '10.0' target '<Your Target Name>' do use_frameworks! pod 'SwiftyJSON', '~> 4.0.0' end
2. 初始化
import SwiftyJSON let json = JSON(data: dataFromNetworking)
let json = JSON(jsonObject)
if let dataFromString = jsonString.data(using: .utf8, allowLossyConversion: false) { let json = JSON(data: dataFromString) }
3. 下标访问
// 方式1 let name = json[1]["list"][2]["name"].string //方式2 let name = json[1,"list",2,"name"].string //方式3 let keys:[JSONSubscriptType] = [1,"list",2,"name"] let name = json[keys].string
let arrayNames = json["users"].arrayValue.map({$0["name"].stringValue})
4. 循环遍历
不管JSON是数组类型还是字典类型
key的类型都为
String。
for (key,subJSON) in json { ... }
5. 错误处理
枚举类型
SwiftyJSONError包含
unsupportedType、
indexOutOfBounds、
elementTooDeep、
wrongType、
notExist、
invalidJSON、
errorDomain。
6. 可选值获取
通过
.number、
.string、
.bool、
.int等方法获取到的是可选值。
if let id = json["user"]["name"].string { ... } else { ... print(json["user"]["name"].error!) }
7. 非可选值获取
通过
.xxxValue方法获取到的是非可选值。
// 若不是String或为nil,返回“” let name: String = json["name"].stringValue
8. 设置值
json["name"] = JSON("new-name") json[0] = JSON(1)
json["name"].string = "Jack" json.arrayObject = [1,2,3,4] json.dictionaryObject = ["name":"Jack", "age":25]
9. 原始数据
let rawObject: Any = json.object let rawValue: Any = json.rawValue
do { let rawData = try json.rawData() } catch { print("Error \(error)") }
if let rawString = json.rawString() { ... } else { print("json.rawString is nil") }
10. 其他方法
exists
// 判断是否存在 if json["name"].exists()
merge
let original: JSON = [ "first_name": "Theo", "age": 20, "skills": ["Coding", "Reading"], "address": [ "street": "Software St", "zip": "210046", ] ] let update: JSON = [ "last_name": "Tsao", "age": 22, "skills": ["Writing"], "address": [ "zip": "210012", "city": "Nanjing" ] ] let updated = original.merge(with: update)
输出:
[ "first_name": "Theo", "last_name": "Tsao", "age": 22, "skills": ["Coding", "Reading", "Writing"], "address": [ "street": "Software St", "zip": "210012", "city": "Nanjing" ] ]
转载于:https://www.cnblogs.com/metaphors/p/9405432.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- iOS(Swift)学习笔记之SwiftyJSON的使用
- 【swift学习笔记】四.swift使用Alamofire和swiftyJson
- iOS 学习笔记四 【xcode 7.3 ESJsonFormat-Xcode 插件不能使用的解决办法】
- 【swift学习笔记】四.swift使用Alamofire和swiftyJson
- 第三章、一些基本数据结构使用和解析(iOS学习笔记,从零开始。)
- ios 学习笔记(8) 控件 按钮(UIButton)的使用方法
- ios学习笔记(六)使用UIScrollView嵌套UIView子类
- IOS开发学习笔记(十八)——使用地理位置及地图(下篇)
- IOS学习笔记27—使用GDataXML解析XML文档
- iOS: 学习笔记, Swift与C指针交互(译)
- iOS学习笔记10—UILabel设置自动使用高和换行
- Java学习笔记50:JSONObject与JSONArray的使用 .
- ios学习笔记:UIAlertView的使用
- IOS学习笔记(七)之UISegmentedControl分段控件的基本概念和使用方法
- IOS 学习笔记(7) 控件 分隔栏控件(UISegmentControl)的使用方法
- iOS: 学习笔记, Swift操作符定义
- iOS学习笔记(十六)——数据库操作(使用FMDB)
- IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法
- IOS学习笔记27—使用GDataXML解析XML文档
- iOS学习笔记(十六)——数据库操作(使用FMDB)