我们使用swift JSONSerialization进行解析
数据分为两种 “{}“和”[]”
一.数据格式为“{}”
import UIKit
let jsonstr="{\"status\":\"1\",\"data\":{\"udid\":\"5bce8b974adbc6a60858d41657f1761305f62ce9\",\"time\":\"1580546728\",\"orderid\":\"20200201164519672\"}}"
let jsondata = jsonstr.data(using: .utf8)
do {
let ok = try JSONSerialization.jsonObject(with: jsondata!, options: .mutableContainers) as AnyObject
let status:String=ok["status"] as! String
if(status=="1"){
let jsonObject:AnyObject?=ok["data"] as! AnyObject
if let jsonData = try? JSONSerialization.data(withJSONObject: jsonObject, options: []){
let newStr = String(data: jsonData, encoding: String.Encoding.utf8)
let ok = try JSONSerialization.jsonObject(with: jsonData, options: .mutableContainers) as AnyObject
print(ok["udid"] as! String)
}
}
} catch {
print(error)
}
我们顺利udid的数据
5bce8b974adbc6a60858d41657f1761305f62ce9
二.数据格式为“[]”
import UIKit
let jsonstr="[{\"id\": 3},{\"id\": 5}]";
//let jsonstr = "[{\"name\":\"小炮\",\"age\":21},{\"name\":\"大头\",\"age\":21}]"
if let jsonData = jsonstr.data(using: .utf8){
//一:原生解析方法
//获取需要的内容,需要考虑数据是否存在,是否拆包
let dicArr = try! JSONSerialization.jsonObject(with: jsonData, options: .allowFragments) as! [[String:AnyObject]]
print("打印所有数据:\(dicArr)")
// print("原生获取name \(name)")
var name:Int=dicArr[0]["id"] as! Int
print(name)
}
结果:
打印所有数据:[["id": 3], ["id": 5]]
3