2017-10-27 4 views
0

私は形状のコレクションを含むオブジェクトモデルを持っています - IShape。さまざまな種類のJson逆シリアル化

"shapes": [ 
    { 
     "shapeName": "Rectangle", 
     "origin": { 
     "x": 50, 
     "y": 50 
     }, 
     "height": 20, 
     "width": 20, 
     }, 
     "zOrder": 0 
    }, 
    { 
     "shapeName": "Circle", 
     "origin": { 
     "x": 50, 
     "y": 50 
     }, 
     "radius": 200, 
     "zOrder": 0 
    } 
    ] 

を、私は、このためのカスタムコンバータを作成する方法を見つけ出すカントJson.Netを使用した:私はこのようなためにJSONファイルを定義する場合、さまざまな事柄等

長方形、円のように、これを実装します。

また、私は私のモデルクラスの属性を置きたいと思う本当にいけない

...

は、誰もがこのような何かをやっていますか?たぶん私は実際にXMLを使うべきでしょう...(悲しい)。

おかげ

+0

ああ、ちょうどTypeNameHandlingが見つかりました。調査中... – Jonesie

+0

'TypeNameHandling'設定を使用するのが最も簡単な方法です。この状況のた​​めにカスタムコンバータを作成する方法の例が必要な場合は、[この回答](https://stackoverflow.com/a/28523100/10263)を参照してください。 。 –

+0

関連項目[json.netを使用して型情報を持たない多形jsonクラスを逆シリアル化する](https://stackoverflow.com/q/19307752/10263) –

答えて

0
リンクについて

感謝。最後に、自分の "shapeName"プロパティに加えてシリアライズされたjsonに$ typeがあることを除いて、正常に動作するSerializationBinderが見つかりました。 Brian Rogersからのリンクがより良い解決策に見えるので、私もそれを試してみましょう。

関連する問題