オリジナルのクラスをjsonのDataに変換する方法を教えてください。
swiftで独自のクラスをvalueに含むDictionaryをJSONのDataに変換する方法を教えてください。
コードは以下のようです。
class Test {
let value: String
init(_ val: String) {
value = val
}
}
let test = Test("test")
let dictionary: Dictionary<String, Test> = ["The": test]
do{
let jsonData = try JSONSerialization.data(withJSONObject: dictionary, options: [])
}catch{
}
実行環境はplaygroundです。
エラーは下から3行目のtry文で起きます。
エラーメッセージを見る限りだと、独自のクラスをJSONに変換できないということみたいなのですが、何のクラスに変換すればJSONからDictionaryに変換し直す時に、元のDictionaryと同じものが入手できるのでしょうか。
また、以下の方法でそのクラスから元のクラスに戻せるのでしょうか。
let dictionary = try JSONSerialization.jsonObject(with: jsonData) as? Dictionary<String, Test>
回答していただきたい点は、
・独自のクラスをJSONDataに変換する方法
・変換したクラスから独自のクラスに戻す方法
の2点です。
わかる方がいらっしゃいましたら、この2点についての回答をお願いいたします。