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 に答える