Javascript C#Web API JSON字符串映射到对象
我有一个接收JSON对象的Web API方法 从客户端发布的JSON是:Javascript C#Web API JSON字符串映射到对象,javascript,json,asp.net-web-api,json.net,Javascript,Json,Asp.net Web Api,Json.net,我有一个接收JSON对象的Web API方法 从客户端发布的JSON是: { "EmployerId": 1, "EmployeeId": 6, "HolidayTypeId": 1, "CategoryType": "Normal", "SelectedDates": { "Wed Jul 16 2014": "2014-07-16T00:00:00", "Thu Jul 17 2014": "2014-07-17T00:
{
"EmployerId": 1,
"EmployeeId": 6,
"HolidayTypeId": 1,
"CategoryType": "Normal",
"SelectedDates": {
"Wed Jul 16 2014": "2014-07-16T00:00:00",
"Thu Jul 17 2014": "2014-07-17T00:00:00",
"Fri Jul 18 2014": "2014-07-18T00:00:00"
}
}
Web方法如下所示:
[HttpPost]
public HttpResponseMessage UpdateHolidayRequest([FromBody] Model.HolidayRequestModel request) {
HttpResponseMessage returnVal = null;
returnVal = Request.CreateResponse(HttpStatusCode.OK, new Model.Custom.JsonResponse {
data = null,
message = "",
num = 1,
success = true
});
}
我的HolidayRequestModel
课程是:
public class HolidayRequestModel {
public int HolidayId {
get;
set;
}
public int EmployeeId {
get;
set;
}
public byte HolidayTypeId {
get;
set;
}
// Selected Dates
public List<string> SelectedDates {
get;
set;
}
}
公共类HolidayRequestModel{
公共假日酒店{
收到
设置
}
公共国际雇员ID{
收到
设置
}
公共字节HolidayTypeId{
收到
设置
}
//选定日期
公开选定日期列表{
收到
设置
}
}
除了SelectedDates
之外,我获得了所有的属性,因为我刚刚意识到这不是一个列表,因为SelectedDates
有一个字段和一个值
要在我的模型中填充SelectedDates
属性类型,有什么线索吗?将SelectedDates
属性更改为字典(或者可能是字典
),而不是列表
,这将允许它正确反序列化
e、 g:
public class HolidayRequestModel {
...
// Selected Dates
public Dictionary<string, string> SelectedDates {
get;
set;
}
}
公共类HolidayRequestModel{
...
//选定日期
公共字典精选日期{
收到
设置
}
}
我认为日期格式应该类似于:“SelectedDates”:[“2014-07-16T00:00:00”]
您希望在SelectedDates上有一个列表,但您发布了JSON对象{}。您应该将JSON更改为[]我无法控制客户端代码:(您可以创建一个自定义消息处理程序,将其更改为使用[]。