c# - 使用Newtonsoft在驼峰式中对字典键进行Json序列化的奇怪行为
问题描述
我正在使用 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()
});
解决方案
您确定拥有最新版本的 Newtonsoft.Json,版本为 12.0.3,我的结果与您的示例相关:
{"thisismykey":100,"demo":200,"thisissmallkey":300,"longdemokay":400,"thisisother":500,"oooo oOOOoo":600,"demo Long":700}
我没有看到任何问题?
推荐阅读
- node.js - 在不同主机上的网络服务器之间共享对象的最佳方式是什么
- reactjs - whileTap 和 whileHover 道具在 iFrame 内的元素上无法按预期工作
- php - 删除一个条目后更改其他条目的sort_id PHP Laravel
- reporting-services - 根据参数值过滤数据集结果
- azure-sql-database - SQL Azure - 列“”的类型与 UNPIVOT 列表中指定的其他列的类型冲突
- r - R:将小数位数与相邻值匹配
- ruby-on-rails - 使用回形针 gem 在 Rails 3.2 中上传 .heic 图像
- pytorch - Pytorch 1.7.0 | DataLoader 错误 - TypeError:“模块”对象不可调用
- php - 在 SQL 数据库中的 php 中显示动态 URL 页面中的项目
- python - 为什么 MDRaisedButton 在 Android 上不起作用?