Json をサーバーに送信したいのですが、Newtonsoft のJson.NET 1を使用してそれを行います。json には型情報 ( "$type" = ... ) が含まれる場合があります。この型情報は、不明な型を指している可能性があります。このオブジェクトは通常、オブジェクト型のプロパティに含まれます。
私がやりたいこと:
- 不明な型の部分を JObject に変換する
- なんらかの方法で型情報を保存して、後でサーバーに渡されたときに同じjson をクライアントに送り返すことができるようにします。
これまでに試したこと
の を置き換えること
SerializationBinder
で、JsonSerializer
Json.NET に強制的に .json に含まれる json を逆シリアル化させることができJObject
ます。$typeプロパティが失われているのは残念ですが、これは私が望んでいることのほとんどです。JsonConverter
バインダーで、問題のあるオブジェクトをむさぼり食うカスタムと調和して機能するオブジェクトを指す型を返すため、書き込み時に、遭遇したときにjsonを忠実に再作成します。ただし、$type 情報をヒットすると、コンバーターは呼び出されなくなります。どうやら、json.NET コードの別のブランチにいるようです。シリアライゼーション エラーを処理し、問題のある部分をリーダーから読み込もうとすると、手動で JOBject を作成し、型情報に注釈を付けることができます。
1) より具体的 - RavenDB.Abstractions に含まれているビルドですが、あまり分岐していないことを願っています。