字典的序列化将部分键修改为小写

本文关键字:修改 序列化 字典 | 更新日期: 2023-09-27 18:15:59

关于。net中序列化的一个快速问题(对它来说还是很新的)。

我有一条返回Dictionary<string, ArbirartyModel[]>的路由。问题在于结果。我把预期和实际放在下面。它似乎降低了所有字符,直到第一个下划线前一个字符,然后将其他所有字符留在下面。

预期

{
  TEST_ONE: "Value",
  TEST_TOW: "Value"
}
实际

{
  tesT_ONE: "Value",
  tesT_TOW: "Value"
}

我一直在寻找,似乎这个问题和其他一些是相关的,但是,不幸的是,我不能改变任何东西在Global.asax

任何帮助都将非常感激。

[HttpGet, Route("result/goes/here")]
public IHttpActionResult ReturnResult()
{
   return Ok(new Dictionary<string, string>() {{"TEST_ONE", "Value"}, {"TEST_TOW", "Value"}});
}

Ok是IHttpActionResult在Web API (https://msdn.microsoft.com/en-us/library/dn314591.aspx)的一部分

字典的序列化将部分键修改为小写

您有JSON。. NET配置为使用驼峰大小写序列化属性名。不幸的是JSON。在这方面,NET将把Dictionary类型视为与对象类型相同的类型,将每个键视为属性名。

错误的配置看起来像这样:

JsonConvert.SerializeObject( <YOUR OBJECT>, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() });