一尘不染

.net的Newtonsoft JSON忽略了jsonproperty标签

json

由于某些令人烦恼的原因,JsonProperty标记无法与Newtonsoft的Json for .net工具一起使用。在我的课堂上,我有这些:

    [JsonProperty(PropertyName = "id")]
    public string ID { get; set; }
    [JsonProperty(PropertyName = "title")]
    public string Title { get; set; }
    [JsonProperty(PropertyName = "url")]
    public string Url { get; set; }
    [JsonProperty(PropertyName = "class")]
    public string EventClass { get; set; }
    [JsonProperty(PropertyName = "start")]
    public string Start { get; set; }
    [JsonProperty(PropertyName = "end")]
    public string End { get; set; }

但是我收到这个

{"success":true,
 "result": [{
    "ID":"0",
    "Title":"Eid ul-Fitr",
    "Url":"<blah>",
    "EventClass":"event-info",
    "Start":"1406520000000",
    "End":"1406606400000"},
  etc.

如您所见,它忽略了我设置属性名称。我也尝试过使用[System.Runtime.Serialization.DataMember(Name="id")],但没有用。

这才是真正推动我前进的因素。它昨天工作了。我将其回滚到昨晚进行承诺时的位置,但仍然无法正常工作。

有什么想法吗?


阅读 508

收藏
2020-07-27

共1个答案

一尘不染

您确定要使用Json.Net进行序列化吗? Json(MyClass)是ASP.NET
MVC方法。MVC使用JavaScriptSerializer不支持[JsonProperty]属性的类。要使用属性,您需要使用Json.Net方法进行序列化JsonConvert.SerializeObject(MyClass)。如果您想从MVC控制器中返回该JSON,则需要调用Content(jsonString, "application/json")而不是Json()

2020-07-27