JSON是一种非常普遍的轻量级数据格式,在Swift中可以方便地与JSON数据结合,用于网络请求或数据存储等场景。
JSON序列化
可以通过JSONSerialization将Swift数据编码为JSON:
let jsonData = try? JSONSerialization.data(withJSONObject: someData)
someData可以是字典、数组等Swift数据结构。data方法将其编码为NSData。
反序列化JSON:
swift www.itzhimei.com代码
let decoded = try? JSONSerialization.jsonObject(with: jsonData)
jsonObject可以把JSON数据解析回Swift字典/数组。
Codable
Swift中的Codable协议可以实现自动JSON编码解码:
struct User: Codable {
var name: String
var age: Int
}
let user = User(name: "John", age: 20)
let json = try? JSONEncoder().encode(user) // 编码JSON
let decodedUser = try? JSONDecoder().decode(User.self, from: json) // 解码对象
只需要类型遵循Codable就可以直接编码/解码JSON。
JSONDecoder读取JSON
JSONDecoder可以直接从JSON数据中解析Swift对象:
let jsonString = """
{ "name": "John", "age": 20 }
"""
let user = try? JSONDecoder().decode(User.self, from: jsonString)
非常方便地直接从JSON中获取Swift类型。
综上Swift提供了多种处理JSON的方式,可以轻松地与JSON数据进行交互,这在网络服务或本地数据存储中非常常见和实用。