使用jQuery循环使用JSON

时间:2012-10-11 22:38:04

标签: jquery json

我想看看这个:

[
    {"leadID":"1","leadName":"Steve"},
    {"leadID":"2","leadName":"Bob"},
    {"leadID":"3","leadName":"Bill"},
    {"leadID":"4","leadName":"Jim"},
    {"leadID":"5","leadName":"James"},
    {"leadID":"6","leadName":"John"},
    {"leadID":"7","leadName":"Eric"},
    {"leadID":"8","leadName":"Tony"},
    {"leadID":"9","leadName":"Jason"},
    {"leadID":"10","leadName":"Paul"}

]

我正在尝试使用$ .each但我无法做到这一点。这是对控制台的测试:

$.each(JSON, function(k, v) {

    console.log(v[0]);

});

我确信我只是没有解析JSON,但我无法理解。最后,我需要将数据附加到选择输入的选项。

对此的任何帮助都会很棒。

谢谢!

3 个答案:

答案 0 :(得分:4)

如果尚未解析JSON,则需要先解析它。

有些浏览器有这种原生:

jsonobject = JSON.parse(jsonstring)

如果没有,你可以使用jQuery

jsonobject = $.parseJSON(jsonstring)

然后,当它是一个对象时,你可以使用$ .each

循环它
$.each(jsonobject, function(x,v) {
   console.log(v.leadID);
   console.log(v.leadName);
});

答案 1 :(得分:1)

如果您使用$ .each,它将如下所示:

$.each(myJSON, function(key, value){
    console.log(value);
    console.log(value['leadID']);
});

您不需要执行值[0]。以下是我通常的做法:

for (var tk in myJSON)
{
    console.log(myJSON[tk]);
    console.log(myJSON[tk]['leadID']);
}

请参阅http://api.jquery.com/each/

答案 2 :(得分:0)

示例中的

k将遍历数组的索引(0..9),v将迭代对象..

所以例如你可以做(​​评论参考第一次迭代):

$.each(JSON, function(k, v) {

    console.log(k); // 0
    console.log(v); // {"leadID":"1","leadName":"Steve"}
    console.log(v['leadID']); // "1"
    console.log(v['leadName']); // "Steve"

});