在Swift中,如何使用 `Codable` 协议对自定义对象进行JSON的编码和解码?

在Swift中,`Codable` 是一个组合协议,它由 `Encodable` 和 `Decodable` 组成,能够轻松地实现对象到JSON的编码,以及JSON到对象的解码。以下是一个示例,展示如何使用 `Codable` 来完成此操作:

```swift
import Foundation

// 定义一个符合 Codable 协议的自定义结构体
struct User: Codable {
var name: String
var age: Int
var email: String
}

// 创建一个 User 实例
let user = User(name: "Alice", age: 25, email: "alice@example.com")

// JSON 编码:将 User 对象转换为 JSON 数据
if let jsonData = try? JSONEncoder().encode(user),
let jsonString = String(data: jsonData, encoding: .utf8) {
print("编码后的JSON字符串: \(jsonString)")
}

// 假设我们有一个 JSON 字符串
let jsonString = """
{
"name": "Bob",
"age": 30,
"email": "bob@example.com"
}
"""

// JSON 解码:将 JSON 数据转换为 User 对象
if let jsonData = jsonString.data(using: .utf8),
let decodedUser = try? JSONDecoder().decode(User.self, from: jsonData) {
print("解码后的User: \(decodedUser)")
}
```

输出结果:
```
编码后的JSON字符串: {"name":"Alice","age":25,"email":"alice@example.com"}
解码后的User: User(name: "Bob", age: 30, email: "bob@example.com")
```

总结:
1. 实现 JSON 编码使用 `JSONEncoder` 对象。
2. 实现 JSON 解码使用 `JSONDecoder` 对象。
3. 确保您的自定义对象(例如 `User`)遵循 `Codable` 协议即可完成 JSON 的序列化与反序列化操作。

若文章对您有帮助,帮忙点个赞!

0
0
发布时间 2025-02-19 20:42:15
0 条回复(回复会通过微信通知作者)
点击加载更多评论
登录 后再进行评论
(微信扫码即可登录,无需注册)