2012-05-14 108 views
1

是否可以使用jQuery ajax和Json.NET從[WebMethod]返回JArray對象?例如:如何使用Json.NET從[WebMethod]返回JArray?

[WebMethod] 
public JArray GetJsonData() 
{ 
    JArray jArray = new JArray(); 
    JObject jObject = new JObject(); 
    jObject.Add(new JProperty("name", "value")); 
    jArray.Add(jObject); 
    return jArray; 
} 

當我把這個使用jQuery AJAX,它返回的東西,看起來像這樣:

[[[[]]]]

回答

0

我相信你需要返回一個字符串。

[WebMethod] 
public string GetJsonData() 
{ 
    JArray jArray = new JArray(); 
    JObject jObject = new JObject(); 
    jObject.Add(new JProperty("name", "value")); 
    jArray.Add(jObject); 
    return jArray.ToString(); 
} 
+2

唯一的原因,我不想返回一個字符串是因爲那時我將不得不解析它在JavaScript中,因爲.NET如何在結果周圍包裝'.d'屬性。 – fehays

+2

雖然這確實起作用,但我不喜歡它添加到JSON中的所有空格和回車符。在Postman中查看它,與從不返回字符串得到的正常JSON結構化輸出相比,它非常難看。 – DiggyJohn

0

我改變了我的$.get()$.getJSON(),我的後端:

[HttpGet] 
public JArray GetJSON(string id) 
{ 
    JArray items = Populate(id); 
    return items; 
}