由于某些令人烦恼的原因,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")],但没有用。
[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()。
Json(MyClass)
JavaScriptSerializer
[JsonProperty]
JsonConvert.SerializeObject(MyClass)
Content(jsonString, "application/json")
Json()