.net的Newtonsoft JSON忽略了jsonproperty标签

出于一些非常恼人的原因,JsonProperty标签不适用于Newtonsoft的Json for .net工具。 在我的class上我有这些:

[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":"", "EventClass":"event-info", "Start":"1406520000000", "End":"1406606400000"}, etc. 

正如您所看到的,它忽略了我设置属性名称。 我已经尝试过使用[System.Runtime.Serialization.DataMember(Name="id")]并且没有用。

这就是真正让我上街的原因。 它昨天工作。 我把它推回到昨晚我承诺的地方,它仍然无法正常工作。

有什么想法吗?

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