2

次のようなデータを逆シリアル化しようとしています。

{
   "item1":"value1",
   "item2":2,
   "item3":true,
   "item4":{
       "subItem1":"subValue1",
       "subItem2":"subValue2",
   }
}

C# では、デシリアライズされたオブジェクトを次のようなインスタンスにしたいと思います。

Dictionary<string, object>

各 Value オブジェクトの実際の型は、string、double、boolean、またはDictionary<string,string>

次のようなステートメントを簡単に使用できます。

JSONConvert.Deserialise<Dictionary<string,object>>(text);

しかし、それは私にタイプの値オブジェクトを与えます:文字列、倍精度、ブール値、またはJObject

unknownJObjectDictionary<string, string>オブジェクトにルーティングする方法に興味があります。

4

1 に答える 1

3

辞書に逆シリアル化する代わりに、dynamic

dynamic json = JsonConvert.DeserializeObject(text);
Console.WriteLine(json.item1);
Console.WriteLine(json.item4.subItem1);

JObjectはIDictionaryも実装しているため、次のように使用することもできます。

var jobj = (JObject)JsonConvert.DeserializeObject(text);
Console.WriteLine(jobj["item4"]["subItem1"]);
于 2012-11-12T15:29:59.617 に答える