使用/ jQuery将变量解析为JSON

时间:2009-08-06 13:39:03

标签: jquery jquery-1.3

我正在尝试使用问题列表和单选按钮填充表单。当页面加载时,我有一个变量,其中包含他们所拥有的答案,直到JSON格式的字符串:

var json = '{ "answers" : [{"84" : "Y" },{"85" : "Y" },{"86" : "Y" },{"87" : "Y" },{"88" : "Y" },{"89" : "N" },{"90" : "N" },{"91" : "N" },{"92" : "Y" },{"93" : "N" },{"94" : "Y" },{"95" : "N" },{"96" : "N" },{"97" : "Y" }]}';

我需要遍历答案并找到ID与IE id =“84”匹配的单选按钮,并根据相应的值(Y)设置它的值。

看起来像getJSON是我应该看的东西,但我不需要调用来获取数据,因为我已经拥有它。

3 个答案:

答案 0 :(得分:4)

你可以删除外面的引号,它的格式也是正确的。

var json = {
                "answers" : [{"84" : "Y" },
                 {"85" : "Y" },
                 {"86" : "Y" },
                 {"87" : "Y" },
                 {"88" : "Y" },
                 {"89" : "N" },
                 {"90" : "N" },
                 {"91" : "N" },
                 {"92" : "Y" },
                 {"93" : "N" },
                 {"94" : "Y" },
                 {"95" : "N" },
                 {"96" : "N" },
                 {"97" : "Y" }
            ]
        };

与其他一些格式不同,JSON基于实际语言,这意味着您可以在常规编码中使用JSON格式。编写JSON相当容易。

答案 1 :(得分:0)

通常你会使用如下所示的每个语句:

 jQuery.each(json.answers, function(i, val) {
   $("#" + i).val() = val;
 });

答案 2 :(得分:0)

知道了,删除了上面引用的引号,添加了一个与ID匹配的类,这样我就可以选择给定ID的所有元素:

 for(var i =0; i < json.answers.length; i++) { 
           var item = json.answers[i]; 
           for (var j in item) {
              $('.' + j).each(function(){
                 if ($(this).attr("value") == item[j]) $(this).attr("checked", true);
              });
     }
 }

我相信可能有一个更优雅的解决方案,但到目前为止效果非常好。