繁体   English   中英

使用Newtonsoft在驼峰式字典中使用字典密钥的Json序列化的奇怪行为

[英]Strange behavior with Json Serialization of dictionary key in camelcase using Newtonsoft

我正在使用Newtonsoft CamelCasePropertyNamesContractResolver将对象序列化为json。 我看到字典键的奇怪的属性名称转换。

为什么要更改密钥DEMO => demoDEMO 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()
});

您确定具有Newtonsoft.Json的最新版本和12.0.3版本吗,我的示例中与此结果相关:

{"thisismykey":100,"demo":200,"thisissmallkey":300,"longdemokay":400,"thisisother":500,"oooo oOOOoo":600,"demo Long":700}

我没看到任何问题吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM