【问题标题】:parse variable as JSON w/ jQuery使用 jQuery 将变量解析为 JSON
【发布时间】:2009-08-06 13:39:03
【问题描述】:

我正在尝试使用问题列表和单选按钮填充表单。加载页面时,我有一个变量,其中包含他们迄今为止的答案,作为 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 是我应该查看的,但我不需要调用来获取数据,因为我已经有了它。

【问题讨论】:

    标签: jquery jquery-1.3


    【解决方案1】:

    你可以去掉外面的引号,它已经是正确的格式了。

    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 相当容易。

    【讨论】:

    • GAH - 谢谢,现在我只需要知道如何从底层答案对象中获取值,我正在像这样循环它们:for(var i =0; i
    • json.answers[i].84 将获得第一个值。
    • 是的,数字总是在变化——我永远不会提前知道它们
    【解决方案2】:

    通常你会使用如下的 each 语句:

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

    【讨论】:

      【解决方案3】:

      知道了,删除上面提到的引号添加了一个与 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);
                    });
           }
       }
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-08
        • 1970-01-01
        • 1970-01-01
        • 2015-09-19
        • 2016-03-11
        • 1970-01-01
        • 2013-08-18
        • 1970-01-01
        相关资源
        最近更新 更多