2012-08-08 67 views
0

我已经得到了POCO的ICollection<T>这样的:ASP.NET MVC 3序列化到JSON

public class SearchJsonModel 
{ 
    public string label { get; set; } 
    public string category { get; } 
} 

在我的Razor视图,序列化,如下所示:

<script type="text/javascript"> 
    var jsonArray = @Html.Raw(Json.Encode(Model)); 
</script> 

但产量是这样的:

var jsonArray = [ 
    {"category":"Names","label":"Joe"}, 
    {"category":"Names","label":"John"} 
]; 

由于属性引用引起了问题。

我需要逐一接入各家JSON对象的属性,所以我希望它是这样的:

var jsonArray = [ 
    {category:"Names",label:"Joe"}, 
    {category:"Names",label:"John"} 
]; 

这样我可以做这样的事情:

$.each(jsonArray, function(index, item) { 
    var x = item.category; 
}); 

什么时我做错了?我使用错误的方法来编码?

回答

2

此JSON有效(在JSONLINT中检查)。引号应该在那里。

你可以得到的类别值像这样没有任何问题

$(function(){ 
    var data=[ 
    {"category":"Names","label":"Joe"}, 
    {"category":"Names","label":"John"} 
]; 

    $.each(data,function(index,item){ 
      alert(item.category); 
    });   

});​ 

样品http://jsfiddle.net/DKnBh/

+1

/我拍打头部。是我的编码和脚本使用它的顺序问题。对不起浪费浪费时间。 :) – RPM1984 2012-08-08 01:20:48