2013-09-26 73 views
1

我構建了一個ASP.NET Web Api。 現在,我已經將項目更新爲MVC 4 RC,但動態對象不再按預期工作。用Request.CreateResponse返回JsonArray

我有這樣的:

var Arr = new JsonArray(); 

foreach (var Post in Coll) 
{ 
    dynamic Item = new JsonObject(); 
    Item.Header = Post.Header; 
    Item.Body = Post.Body; 
    Item.Language = Post.Language; 
    Arr.Add(Item); 
} 

return Request.CreateResponse(HttpStatusCode.OK, Arr); 

結果我從這個得到的是(在瀏覽器中):

[{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]},{"Header":[],"Body":[],"Language":[]}] 

在debugg我得到這樣的:(對象編曲)

{[{"Header":"All distances","Body":"All distances are ","Language":"EN"},{"Header":... 

爲什麼不一樣?

(科爾是一個對象的列表)

回答

0

嘗試使用它

回報Request.CreateResponse(HttpStatusCode.OK,Arr.ToArray());

這只是一種猜測,如果你能看到它在調試那麼很可能會強制計算的對象,當你添加到觀察名單和觀察者顯示。然後.ToArray()也應該可以幫到你。

0

我想你沒有解析Arr來在客戶端json數據。在客戶端AJAX方法 試試這個:

var obj = $.parseJSON(result); 

結果是從服務器返回的值。 和你可以得到每個對象的陣列如下:

 $(obj).each(function() {  
     // alert($(this).attr('Header')); 
}); 
相關問題