我正在尋找一種在Swift中自動序列化和反序列化類實例的方法。假設我們已經定義了以下類...在Swift中自動JSON序列化和反序列化對象
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',因此可以存儲對象作爲數據而不是一些純文本格式。 – nhgrif 2014-11-08 18:46:45
這裏不需要第三方Json.NET,DataContractJsonSerializer可以做到這一點。 – 2016-04-07 11:35:18
@Agent_L我不想在這裏深入討論這個問題,但是Newtonsoft.Json比'DataContractJsonSerializer'更好用,功能也更豐富。 – 2016-04-07 11:37:48