出于一些非常恼人的原因,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")]
,但是没有用。
这是真正让我崛起的原因。它昨天工作。我把它推回到昨晚我承诺的时候,它仍然无法工作。
有什么想法吗?
答案 0 :(得分:15)
你确定你实际上是在使用Json.Net进行序列化吗? Json(MyClass)
是一个ASP.NET MVC方法。 MVC使用JavaScriptSerializer
类,它不支持[JsonProperty]
属性。要使用这些属性,您需要使用Json.Net方法JsonConvert.SerializeObject(MyClass)
进行序列化。如果要从MVC控制器中返回该JSON,则需要调用Content(jsonString, "application/json")
而不是Json()
。