Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字典的序列化将部分键修改为小写_C#_Asp.net_Json.net - Fatal编程技术网

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

C# 字典的序列化将部分键修改为小写,c#,asp.net,json.net,C#,Asp.net,Json.net,关于.NET中序列化的快速问题(对它来说还是很新的) 我有一条返回字典的路线。问题在于结果。我把预期和实际放在下面。它似乎将所有字符降低到第一个下划线前1个字符,然后将所有其他字符保留在下面 预期的 { TEST_ONE: "Value", TEST_TOW: "Value" } 实际值 { tesT_ONE: "Value", tesT_TOW: "Value" } 我一直在四处寻找,似乎和其他一些相关,但不幸的是,我无法在Global.asax中更改任何内容 任何帮助都将

关于.NET中序列化的快速问题(对它来说还是很新的)

我有一条返回
字典
的路线。问题在于结果。我把预期和实际放在下面。它似乎将所有字符降低到第一个下划线前1个字符,然后将所有其他字符保留在下面

预期的

{
  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"}});
}
[HttpGet,Route(“result/go/here”)]
公共IHttpActionResult返回结果()
{
返回Ok(newdictionary(){{“TEST\u ONE”,“Value”},{“TEST\u TOW”,“Value”});
}

Ok
是Web API()中IHttpActionResult的一部分。

您已将JSON.NET配置为使用驼峰大小写序列化属性名称。不幸的是,在这方面,JSON.NET将字典类型视为对象类型,将每个键视为属性名

有问题的配置将如下所示:


JsonConvert.SerializeObject(
, 
新JsonSerializerSettings
{ 
ContractResolver=新的CamelCasePropertyNamesContractResolver()
});

你能把创建字典的代码和序列化字典的代码贴在哪里吗?@Bas应该加在那里。序列化发生在json.NET中。我不相信这是json.NET在做的事情。显示
//在此处添加结果的实际实现…
。请参阅。本地窗口的结果显示与预期数据类似的键。因此,当
combinations.Select(x=>x.key).ToArray()完成时,将返回以下内容
[“APP\u INSTALLS”,“TEST\u STRING”]
很抱歉,我无法用简单的
返回Ok(新字典{“CAPS”,“Foo”}):它给我
{“CAPS”:“Foo”}
。可能您有一些自定义序列化程序或更改了一些序列化设置,或者您正在使用某个库的特定版本。请再次阅读并包括所有相关细节