在使用automapper时,如何将属性名称的jsonproperty设置为dto



在我的API中,我使用automapper映射到模型,它将实体精细地映射到模型中,但我希望将PropertyNames添加到模型中。我使用了Json.net的JsonProperty,但这并不能正常工作。

下面是DTO级

public class StudentModel
{
[JsonProperty("Admission Number")] public string StudentId { get; set; }
[JsonProperty("Date of Birth")] public string DOB { get; set; }
[JsonProperty("Name")] public string StudentName { get; set; }
}

下面是实体类

public class StudentEntity
{
public string StudentId { get; set; }
public DateTime DOB { get; set; }
public string StudentName { get; set; }
}

像这样的映射mappingProfile.CreateMap<StudentEntity, StudentModel>()映射器为:_mapper.Map<StudentEntity, StudentModel>(entity)).ToList();

但是我在响应中没有得到JSON属性

这样的输出

{
"studentId": "30112020",
"dOB": "01-01-2020 12:00 AM",
"studentName": "rom"
}

但我想变成这样

{
"Admission Number": "30112020",
"Date of Birth": "01-01-2020 12:00 AM",
"Name": "rom"
}

在遵循dbc的注释后,它工作了

public class ResponseJson
{
[JsonPropertyName("StudentId")]
public string StudentId { get; set; }
[JsonPropertyName("dob")]
public string DOB { get; set; }
[JsonPropertyName("StudentName ")]
public string StudentName { get; set; }
}

而不是

public class StudentModel
{
[JsonProperty("Admission Number")] public string StudentId { get; set; }
[JsonProperty("Date of Birth")] public string DOB { get; set; }
[JsonProperty("Name")] public string StudentName { get; set; }
}

相关内容

  • 没有找到相关文章

最新更新