Swift 之 JSONEncoder 和 JSONDecoder

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

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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Morris_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值