0

我试图通过这个:

[
    {"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,但我无法弄清楚。最终我需要将数据附加到选择输入的选项中。

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

谢谢!

4

3 回答 3

4

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

一些浏览器有这个原生:

jsonobject = JSON.parse(jsonstring)

如果没有,你可以使用 jQuery

jsonobject = $.parseJSON(jsonstring)

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

$.each(jsonobject, function(x,v) {
   console.log(v.leadID);
   console.log(v.leadName);
});
于 2012-10-11T22:48:53.820 回答
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/

于 2012-10-11T22:40:37.920 回答
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"

});
于 2012-10-11T22:45:17.657 回答