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点についての回答をお願いいたします。