.NET 4.5 バージョンのDataContractJsonSerializerとDataContractJsonSerializerSettings.UseSimpleDictionaryFormatの助けを借りて、辞書をシリアル化できます。たとえば、この辞書:
var dic = new Dictionary<string, object>
{
{ "Level", 3 },
{ "Location", "Catacomb" }
};
素敵な JSON に変換されます。
{
"Level":3,
"Location":"Catacomb"
}
しかし、値として別の辞書がある場合:
var dic = new Dictionary<string, object>
{
{ "Level", 3 },
{ "Location", new Dictionary<string, object>
{
{ "Name", "Catacobms" }
}
}
};
結果のJSONは本当に悪いように見えます:
{
"Level":3,
"Location":[
{
"__type":"KeyValuePairOfstringanyType:#System.Collections.Generic",
"key":"Name",
"value":"Catacobms"
}
]
}
この問題を解決する方法はありますか?
PS: 他にも優れた JSON シリアライザーがあることは知っていますが、この場合はDataContractJsonSerializerを使用する必要があります。