.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()
。