jquery没有迭代json

时间:2014-06-03 11:28:19

标签: jquery json

我不知道为什么这个json不会迭代...

我有

HTML

<input type="hidden" value="[{"drop":54,"colour":532,"chosen":830}]" name="HiddenOpenerJson" id="HiddenOpenerJson"> 

jquery的:

$('#OpenerDirectionVal').change(function () {
    var selected = this.value;
    var dataArray = $("#HiddenOpenerJson").val();
    $(jQuery.parseJSON(JSON.stringify(dataArray))).each(function () {
        var drop = this.drop;
        var colour = this.colour;
        var chosen = this.chosen;
        if (chosen == selected) {
            $("select[data-hardwareid='" + drop + "']").val(colour);
        }
    });
}); 

1 个答案:

答案 0 :(得分:1)

HTML代码不正确,因此输入中的值只会在第一个引号处被剪切,因此您只需"[{"

您需要对JSON进行HTML编码:

<input type="hidden" value="[{&quot;drop&quot;:54,&quot;colour&quot;:532,&quot;chosen&quot;:830}]" name="HiddenOpenerJson" id="HiddenOpenerJson">

然后,当您想要将字符串解析为JSON时,您不希望将JSON编码为JSON,只需解析它:

$(jQuery.parseJSON(dataArray)).each(function () {

演示:http://jsfiddle.net/xUhxE/