JSON与Swift结合

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数据进行交互,这在网络服务或本地数据存储中非常常见和实用。