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点についての回答をお願いいたします。
CC BY-SA 3.0
2017-07-31T11:07:44.057
36820
2017-07-31T11:07:44.057
24669
question
swift json
オリジナルのクラスをjsonのDataに変換する方法を教えてください。