【发布时间】:2020-03-23 20:24:02
【问题描述】:
我正在使用 Newtonsoft CamelCasePropertyNamesContractResolver 将对象序列化为 json。我看到字典键的奇怪属性名称转换。
为什么改键DEMO => demo 而DEMO Long => demO Long(大写O而不是小o)?
更多测试:
Dictionary Key Json Property Name(After serialization)
------------ ----------------
THISISMYKEY thisismykey
DEMO demo
DEMO Long demO Long
LONGDEMOKAY longdemokay
OOOO oOOOoo oooO oOOOoo
C# 代码参考:
Dictionary<string, long> collection = new Dictionary<string, long>();
collection.Add("THISISMYKEY", 100);
collection.Add("DEMO", 200);
collection.Add("thisissmallkey", 300);
collection.Add("LONGDEMOKAY", 400);
collection.Add("THISISOTHER", 500);
collection.Add("OOOO oOOOoo", 600);
collection.Add("DEMO Long", 700);
var response = JsonConvert.SerializeObject(collection, new JsonSerializerSettings{
ContractResolver = new CamelCasePropertyNamesContractResolver()
});
【问题讨论】:
标签: c# dictionary serialization json.net