我有一个看起来像这样的对象模型:
{
"productCode": 1,
"productInfo": "Product number 1"
}
我正在通过Dapper填充它,并将其暴露给angular.js使用者,但是JSON中的属性名称显示为:
{
"ProductCode": 1,
"ProductInfo": "Product number 1"
}
请特别注意骆驼的情况。我希望它与原始声明的名称匹配,即
{{1}}
我该怎么做?
答案 0 :(得分:6)
内幕下,最有可能Web-API使用JSON.Net作为JSON序列化引擎;这意味着您可以使用JSON.Net的属性控制输出,例如:
public class Product
{
[JsonProperty("ProductCode")]
public string ProductCode { get; set; }
[JsonProperty("ProductInfo")]
public string ProductInfo { get; set; }
}
没有这些,JSON.Net使用约定和配置-常规的JSON约定是使用驼峰式,因此这是默认设置。您还可以 更改默认配置,但是我建议您不要这样做,除非您了解影响的范围。
答案 1 :(得分:0)
使用此代码可防止 Newtonsoft.Json 序列化程序更改属性名称大小写:
services.AddControllers().AddNewtonsoftJson(options=>
{
options.SerializerSettings.ContractResolver = new DefaultContractResolver() { };
});
或者对于 System.Text.Json:
services.AddControllersWithViews().AddJsonOptions(options =>
{
options.JsonSerializerOptions.PropertyNamingPolicy = null;
});