前言
Swift通过JSON序列化和反序列化
定义结构体
字段名:结构体中的字段名需要与JSON格式字符串中的字段名保持一致
定义编码结构体
1 2 3 4 5
| import Foundation
struct 结构体名: Encodable { let 字段名: 数据类型 }
|
定义解码结构体
1 2 3 4 5
| import Foundation
struct 结构体名: Decodable { let 字段名: 数据类型 }
|
定义编码及解码结构体
1 2 3 4 5
| import Foundation
struct 结构体名: Codable { let 字段名: 数据类型 }
|
将结构体变量转换为JSON格式字符串
1 2 3 4 5 6 7 8 9
| let jsonEncoder = JSONEncoder() do { let jsonData = try encoder.encode(结构体变量名) if let jsonString = String(data: jsonData, encoding: .utf8) { print(jsonString) } } catch { print("序列化失败:\(error)") }
|
将JSON格式字符串转换为结构体变量
1 2 3 4 5 6
| let jsonDecoder = JSONDecoder() do { var 结构体变量名 = try jsonDecoder.decode(结构体名.self, from: "JSON格式字符串") } catch { print(error) }
|
完成
参考文献
哔哩哔哩——疯狂滴小黑