まず、JSONの逆シリアル化について別の質問をして申し訳ありません。しかし、私はこれに対する答えを見ていません。
JSONを次のように再帰的に定義されてT
いる場所に逆シリアル化したいと思います。T
Dictionary<string, T>
T[]
string
- プリミティブ型
(object)T
(箱入り)
そこにあるJSONライブラリの多くで逆シリアル化された型を指定できることは知っていますが、私の経験では、カスタム型(JObject
、、JsonObject
など)がオブジェクトグラフのどこかに表示されます(つまり、戻り型は特定の深さ)。タイプはJavaScriptとほぼ1対1でマップされるため、簡単に思えます。
編集
理想的には、JSONを「クリーン」にする、つまり、逆シリアル化を支援する特別なフィールド( "__type"など)を使用しないようにします。これは、JavaScriptからの単純なマッピングである必要があります:JObject
-> IDictionary<string, T>
、JArray
->T[]
など。
その間、私はFParsecパーサーと手巻きシリアライザーを使用しています。それはうまく機能しますが、私はこれのためにすでにそこに何かがあるかもしれないと思いました。