Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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# 自定义Json.NET协定解析器,用于将小写下划线转换为大小写_C#_Asp.net Mvc_Json_Rest_Json.net - Fatal编程技术网

C# 自定义Json.NET协定解析器,用于将小写下划线转换为大小写

C# 自定义Json.NET协定解析器,用于将小写下划线转换为大小写,c#,asp.net-mvc,json,rest,json.net,C#,Asp.net Mvc,Json,Rest,Json.net,我正在ASP.NETMVC中开发一个RESTAPI,其中生成的序列化JSON使用小写字母作为属性 从一个具有字符串属性FirstName和lasname的类Person,我得到如下JSON: { first_name: "Charlie", surname: "Brown" } 请注意小写的下划线名称 我用于为我自动执行此转换的合同解析程序是: 公共类JsonLowerCaseUnderscoreContractResolver:DefaultContractResolver { 私有

我正在ASP.NETMVC中开发一个RESTAPI,其中生成的序列化JSON使用小写字母作为属性

从一个具有字符串属性
FirstName
lasname
的类
Person
,我得到如下JSON:

{
  first_name: "Charlie",
  surname: "Brown"
}
请注意小写的下划线名称

我用于为我自动执行此转换的合同解析程序是:

公共类JsonLowerCaseUnderscoreContractResolver:DefaultContractResolver
{
私有正则表达式Regex=newregex(“(?!(^[A-Z]))([A-Z])”;
受保护的重写字符串ResolvePropertyName(字符串propertyName)
{
返回regex.Replace(propertyName,“$2”).ToLower();
}
}
这一切都很好,但我不知道如何用Json.NET实现相反的效果。例如,我可以如下声明一个API方法,它知道如何将请求体中传入的JSON转换为适当的对象:

public对象Put(int-id,[FromBody]Person)

好的,找到了解决方案。我缺少
Person
类的默认构造函数。一旦我这样做了,当调用
Put
方法时,映射就起作用了。事实上,我还可以删除FromBody说明符:

public对象Put(int-id,Person)