gpt4 book ai didi

c# - 使用 DataContractJsonSerializer 序列化复杂字典

转载 作者:太空宇宙 更新时间:2023-11-03 16:08:07 25 4
gpt4 key购买 nike

借助 DataContractJsonSerializer 的 .NET 4.5 版本和 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

最佳答案

尝试将序列化程序的 EmitTypeInformation 属性设置为 EmitTypeInformation.Never

参见 MSDN Entry

关于c# - 使用 DataContractJsonSerializer 序列化复杂字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18498256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com