Newtonsoft JSON for .net会忽略JSON属性标签

本文关键字:JSON 属性 标签 for net Newtonsoft | 更新日期: 2023-09-27 18:14:19

由于一些真正令人恼火的原因,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")],但没有奏效。

这才是真正让我抓狂的事。昨天还能用。我把它回滚到昨晚提交时的位置,但它仍然不能工作。

任何想法吗?

Newtonsoft JSON for .net会忽略JSON属性标签

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