【发布时间】:2015-10-01 12:39:15
【问题描述】:
我有以下 JSON 对象,可以访问我的 Web API 控制器:
{
"id": "13",
"title": "party",
"periods": {
"0": {
"label": "Period",
"start_date": "2015-04-20",
"end_date": "2015-04-29"
}
}
}
我想尝试将其直接反序列化为我在 C# 中拥有的模型,但我也做不到。
这是我的模型:
public class PeriodsModel
{
[JsonProperty("id")]
public int id { get; set; }
[JsonProperty("title")]
public string title { get; set; }
[JsonProperty("periods")]
public Periods periods { get; set; }
}
public class Periods
{
[JsonProperty("0")]
public Dictionary<string,Period> period { get; set; }
}
public class Period
{
[JsonProperty("label")]
public string label { get; set; }
[JsonProperty("start_date")]
public string start_date { get; set; }
[JsonProperty("end_date")]
public string end_date { get; set; }
}
这是我在控制器中的方法:
public void Put([FromBody]JToken jsonbody)
{
var myJsonObject = JsonConvert.SerializeObject(jsonbody);
PeriodsModel model = JsonConvert.DeserializeObject<PeriodsModel>(myJsonObject);
}
这是我得到的错误消息:
An exception of type 'Newtonsoft.Json.JsonSerializationException' occurred in Newtonsoft.Json.dll but was not handled in user code
Additional information: Error converting value "Period" to type 'CMS.WebApi.Controllers.ActivitiesController+Period'. Path 'periods.0.label', line 1, position 62.
【问题讨论】:
标签: c# json json.net asp.net-web-api2