Swift 之 JSONEncoder 和 JSONDecoder
摘自官方文档:
/// A type that can convert itself into and out of an external representation.
///
/// `Codable` is a type alias for the `Encodable` and `Decodable` protocols.
/// When you use `Codable` as a type or a generic constraint, it matches
/// any type that conforms to both protocols.
public typealias Codable = Decodable & Encodable
对象进行jsonEncode和jsonDecode
一个对象如果需要被编码/解码的话,该对象所属的类需要遵循 Decodable & Encodable 协议。
以 Player 这类为例,Player遵循了 Decodable 和 Encodable
import Foundation
struct Player: Codable {
var name: String
var highScore: Int = 0
var history: [Int] = []
enum CodingKeys: String, CodingKey {
case name = "Name"
case highScore = "HighScore"
case history = "History"
}
init(_ name: String) {
self.name = name
}
}
//Codable, Equatable
extension Player {
mutating func updateScore(_ newScore: Int

本文介绍了Swift中处理JSON的三种方式:JSONEncoder和JSONDecoder进行对象编码解码,以及使用JSONSerialization进行序列化和反序列化。通过示例展示了如何将对象转换为Data类型,再从Data还原对象,以及如何处理JSON字符串。此外,还演示了如何将Objective-C字典转为JSON数据和反向转换。这些内容对于理解数据存储和网络通信中的数据转换至关重要。
最低0.47元/天 解锁文章
1398

被折叠的 条评论
为什么被折叠?



