2

JSON.NET で JSON 構造を解析しようとしています。最初のレベルのすべてのプロパティが正しく逆シリアル化されています。

ディクショナリを逆シリアル化するのに問題があります。オブジェクトの型は、string、double、int、bool、List、Dictionary、および再帰のいずれでもかまいません。

JSON の例:

 {
     "id":"56d4f8sd4f86ds4f",
     "name":"Azerty",
     "dynProp": {
         "xp":100,
         "life":100,
         "bonus": {
             "force": 100,
             "defense": 100
         },
         "ennemies": {
             "beast": {
                 "wolf": 100,
                 "bear": 20
             }
         }
     }
 }

dynProp ノードのすべてのデータは動的であり、オブジェクト タイプ、深さなどを知ることができません。

dynProp オブジェクトの出力は次のようになります。

{{"dynProp","{xp:100, life: 100, bonus: {...}, ...}"}}

実際、JSON.NET はオブジェクト値に jobject を入れ、内部辞書などはまったく入れませんでした。

そのようなシリアライゼーション設定を追加しようとします:

new JsonSerializerSettings
    {
        TypeNameHandling = TypeNameHandling.All,
        TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple
    }

しかし成功せず…

よろしくお願いします。

編集:私は別のフレームワークを受け入れていますが、.net 2.0 で動作する必要があります。

4

1 に答える 1

0

この質問は明示的に JSON.NET に関するものであることは承知していますが、素晴らしい ServiceStack ライブラリについて知らないことを願って、代わりにそこに移動することをお勧めします。具体的には、ServiceStack.Text 名前空間には、JSON.NET の serializer よりもはるかに高速なJSON Serializer があります。

さらに、ユースケースをより適切に処理する JSONObject.Parse メソッドがあります (私は信じています)。あなたが探しているものとほぼ一致するこのスタックオーバーフローの投稿を参照してください。

「動的」インスタンスのネストされたツリーの ServiceStack.Text.JsonObject.Parse と NewtonSoft.Json.Linq.JObject.Parse の比較?

于 2013-07-18T14:53:05.513 に答える