1. ホーム
  2. json

[解決済み] SwiftのオブジェクトをJSONにシリアライズまたは変換するには?

2022-10-07 19:41:37

質問

この下のクラス

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

に変換する必要があります。

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

私は、変数を辞書に設定し、辞書を返す関数に手動でオブジェクトを渡そうとしました。しかし、私はこれを達成するためのより良い方法をしたいと思います。

どのように解決するのですか?

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)