iOS(Swift)学习笔记之SwiftyJSON的使用
本文为原创文章,转载请标明出处
1. 通过CocoaPods安装SwiftyJSON
platform :ios, '10.0'target '<Your Target Name>' douse_frameworks!pod 'SwiftyJSON', '~> 4.0.0'end
2. 初始化
import SwiftyJSONlet 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学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片
Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片 设备图片库和照相机是图像的两个重要来源,使用UIKit中提供的图像选择器UIImagePic ...
- 【swift学习笔记】二.页面转跳数据回传
上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...
- ios开发学习笔记--Core Motion
iOS开发学习笔记之CoreMotion-运动传感器 官网文档:CoreMotion Framework Reference 一. 简介 现在的苹果手机都基本有运动传感器,能够过获取到设备的加 ...
- IOS之学习笔记十五(协议和委托的使用)
1.协议和委托的使用 1).协议可以看下我的这篇博客 IOS之学习笔记十四(协议的定义和实现) https://blog.csdn.net/u011068702/article/details/809 ...
- swift学习笔记《5》- 实用
title: swift学习笔记<5>- 实用 date: 2016-09-21 21:39:00 categories: 学习笔记 Swift学习 tags: Swift 1.setVa ...
- IOS开发学习笔记-----UILabel 详解
IOS开发学习笔记-----UILabel 详解 01 //创建uilabel 02 UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMa ...
- IOS开发学习笔记(一)
概述: iOS是苹果开发的手持设备操作系统(iPhone,iPad,iPod touch,iPad mini). 基于UNIX,层次架构:核心操作系统层(Core OS)-> 核心服务层(Cor ...
- iOS 疑难杂症 学习笔记
iOS Learing note 出现问题:虚拟机 Xcode 调试时候发现键盘出不来 错误提示:Xcode 提示: Can't find keyplane that supports type 8 ...
- Start Developing iOS Apps (Swift) 学习笔记 (1)
一.Learn the Essentials of Swift 1.A constant is a value that stays the same after it's declared the ...
最新文章
- CASS 7.1 和 AutoCAD 2006的安装使用
- mysql事件定时_MySQL事件(定时任务)
- 洛谷P1067 多项式输出
- vlan为什么能隔离广播域_路由交换技术-VLAN原理及配置
- 图论算法(五)--求解割点、割边(JAVA)
- 假如程序员面试都说真话
- Oracle中一把梭获取对象DDL创建语句
- 从FindBugs中学Java【四】
- 机器学习:02 特征工程和决策树回归
- 内涵图:从明天起,做一个有内涵的人
- Wireshark中lua脚本介绍
- html5 3d 签到墙,签到小程序/微信签到/扫码签到/3D签到墙
- MVT 之 M——模型
- FILCO蓝牙CSR4.0驱动安装连接(解决蓝牙连接的终极管理方法,速度极快)
- mysql increment_mysql中auto_increment是干什么的?
- GPS问题调试—MobileLog中有关GPS关键LOG的释义
- VR资讯——局势明朗下的前景展望(V客学院知识分享)
- 安卓动态调试七种武器之长生剑 - Smali Instrumentation
- IT后端技术学习路线图(初阶)
- 计算机丢失d3dx9_27.dll,d3dx9_27.dll
热门文章
- 计算机保密检查工具 百度云,计算机系统保密检查工具
- FFMPEG 从USB摄像头捕获数据
- 模拟房间冲击响应(Room Impulse Response,RIR),AI去混响
- Python编程从入门到实践最详细教程
- STM32CubeIDE属于一站式工具,本文带你体验它的强大
- python 因果推断_因果推断书Causal inference:What if简介(附:因果推断书单推荐)...
- 服务器市场混乱,信息安全是关键
- 变频器按启动没反应_变频器通电无反应故障是什么情况?
- 台达DVP ES系列plc与3台台达MS300变频器通讯程序 实现频率设定,启停控制,实际频率读取等
- 【全套资料.zip下载】数电课设-数字频率计Multisim仿真设计【Multisim仿真+报告+讲解视频.zip下载】