0

我有一个ICollection<T>这样的 POCO:

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;
});

我究竟做错了什么?我是否使用错误的方法进行编码?

4

2 回答 2

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/

于 2012-08-08T01:13:38.420 回答
0

这是标准 JSON,应该不会造成问题。

有关更多信息,请参见此处:在 JSON 中,为什么要引用每个名称?.

于 2012-08-08T01:08:36.743 回答