繁体   English   中英

Json属性为Null-ASP.NET Core

[英]Json Properties Null - ASP.NET Core

我有以下型号

public class SocioEconomicStudy : BaseModel
{
    public string Folio { get; set; }

    public string Craft { get; set; }

    public string RequestType {get;set;}
}

然后我发送以下json

{
     "folio" : "folio",
     "craft" : "craft,
     "request_type": "request_type"
}

但是,当收到带下划线的属性为null时,我尝试使用驼峰式Pascal大小写,但是只有使用小写+下划线的情况下,没有下划线的属性才能正常工作。

控制器方式:

[HttpPost]
public void Post([FromBody] SocioEconomicStudy study)
{
    var cancellationToken = new CancellationToken();
    _logger.LogInformation((study != null).ToString());
    _context.SocioEconomicStudyRepository.AddAsync(study, cancellationToken);
}

因此,只有没有下划线的属性才能保留,有关如何解决此问题的任何想法?

对于不遵循命名规则的属性,可以添加JsonProperty属性,在这种情况下,您的模型应如下所示

public class SocioEconomicStudy : BaseModel
{
    public string Folio { get; set; }

    public string Craft { get; set; }

    [JsonProperty("request_type")]
    public string RequestType { get; set; }
}

将以下内容添加到Startup.cs解决了我的问题

services.AddMvc()
        .AddJsonOptions(options =>
         {
             options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
         }); 

现在它接受驼峰式密码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM