【发布时间】:2026-02-05 04:15:02
【问题描述】:
我正在寻找一种在 Swift 中自动序列化和反序列化类实例的方法。假设我们已经定义了以下类……
class Person {
let firstName: String
let lastName: String
init(firstName: String, lastName: String) {
self.firstName = firstName
self.lastName = lastName
}
}
… 和Person 实例:
let person = Person(firstName: "John", lastName: "Doe")
person 的 JSON 表示形式如下:
{
"firstName": "John",
"lastName": "Doe"
}
现在,这是我的问题:
- 如何序列化
person实例并获取上述 JSON,而无需手动将类的所有属性添加到转换为 JSON 的字典中? - 如何反序列化上述 JSON 并返回静态类型为
Person类型的实例化对象?同样,我不想手动映射属性。
这是在 C# 中使用 Json.NET 的方法:
var person = new Person("John", "Doe");
string json = JsonConvert.SerializeObject(person);
// {"firstName":"John","lastName":"Doe"}
Person deserializedPerson = JsonConvert.DeserializeObject<Person>(json);
【问题讨论】:
-
一般在 Swift/Objective-C 中,序列化意味着转换为
NSData,因此对象可以存储为数据而不是一些纯文本格式。 -
这里不需要第 3 方 Json.NET,DataContractJsonSerializer 可以做到。
-
@Agent_L 我不想在这里深入讨论这场辩论,但 Newtonsoft.Json 比
DataContractJsonSerializer更好用,功能更丰富。 -
如果我可以使用 C# 的 JSON.net 作为(真棒)示例,我会投票给你另一个!
标签: json serialization swift