一尘不染

如何将Swift对象序列化或转换为JSON?

swift

这个下课

class User: NSManagedObject {
  @NSManaged var id: Int
  @NSManaged var name: String
}

需要转换为

{
    "id" : 98,
    "name" : "Jon Doe"
}

我尝试将对象手动传递给将变量设置为字典并返回字典的函数。但是,我希望有一种更好的方法来实现这一目标。


阅读 283

收藏
2020-07-07

共1个答案

一尘不染

在Swift 4中,您可以从Codable类型继承。

struct Dog: Codable {
    var name: String
    var owner: String
}

// Encode
let dog = Dog(name: "Rex", owner: "Etgar")

let jsonEncoder = JSONEncoder()
let jsonData = try jsonEncoder.encode(dog)
let json = String(data: jsonData, encoding: String.Encoding.utf16)

// Decode
let jsonDecoder = JSONDecoder()
let secondDog = try jsonDecoder.decode(Dog.self, from: jsonData)
2020-07-07