我正在使用[ApiController]
和[FromBody]
用.NET core 2.1创建REST控制器。假设我的参数对象是:
public class CreateUserParmeters
{
public string Name {get; set;}
}
我可以发送的JSON可以是:
{ "name":"Test" }
而且:
{ "Name":"Test" }
甚至:
{ "NaMe":"Test" }
一切正常。我想避免这种情况,只允许name
(所以camelCase)。有办法强制执行吗?
答案 0 :(得分:1)
也许此设置会有所帮助:
private static final String PROP = "c24.properties";
private Properties properties;
// Constructor
public KTServices() {
try {
properties = new Properties();
properties.load(new FileInputStream(PROP)); // FILE NOT FOUND??
} catch (IOException e) {
e.printStackTrace();
}
}
您尝试过吗?
答案 1 :(得分:0)
我认为您应该调查以下contract resolver。
在您的Global.asax中:
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter; json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
答案 2 :(得分:0)
您可以使用模型属性上的JsonProperty属性简单地定义所需的json属性名称。它会根据您的要求进行序列化,尽管在将json反序列化回模型实例时实际上并不区分大小写。
[JsonProperty("name")]
public string Name { get; set; }