Swift オブジェクトをシリアル化または JSON に変換するにはどうすればよいでしょうか? 質問する

Swift オブジェクトをシリアル化または JSON に変換するにはどうすればよいでしょうか? 質問する

この下級クラス

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

変換する必要がある

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

変数を辞書に設定し、辞書を返す関数にオブジェクトを手動で渡そうとしました。しかし、これを実現するにはもっと良い方法が必要です。

ベストアンサー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.utf8)

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

おすすめ記事