0

我有一个非常小的 jquery 程序,它试图从一个键中获取值。JSON 文件如下所示:

{
    "Key1": [
        "http://a.com",
        "http: //b.com",
        "http://c.net"
    ],
    "Key2": [
        "http://a.com",
        "http: //b.com",
        "http://c.net"
    ],
    "Key3": [
        "http://a.com",
        "http: //b.com",
        "http://c.net"
    ]
}

我正在尝试通过 key 获取 one 的值。这是我的代码:

$.getJSON('url_dict.json', function(json) {         
    $.each(json, function(key, value) {
           if (key == "Key1") {
            console.log(key.value);
           } else {
            console.log("Nope");
           };
        });
});

我得到的只是不。如果我将其更改为键值,它们会很好地打印出来。如果我尝试按键向下钻取,我只会遇到问题。

4

3 回答 3

3

试试下面的代码。变量 value 是一个数组,因此您需要遍历它以获取每个项目。

$.getJSON('url_dict.json', function(json) {         
  $.each(json, function(key, value) {
       if (key == "Key1") {
        $.each(value, function(k, v) {
            console.log(v);
        });
       } else {
        console.log("Nope");
       };
    });
});
于 2013-10-03T17:38:25.017 回答
2

您必须循环数组

更新:

这里你必须看的一点是

key1 //is a string
[ "http://a.com", "http: //b.com", "http://c.net"] // an array

因此迭代值而不是键

if (key == "Key1") {
        for (var i = 0; i < value.length; i++) {
            console.log(value[i]);
        }
    } else {
        console.log("Nope");
    };

这是JSFiddle

于 2013-10-03T17:39:26.870 回答
0

key.value 实际上是“未定义”,然后是两个“不”

您可以像这样从 Key1 中获取数组:

$.each(json, function(key, value) {
   if (key == 'Key1') {
    console.log(value);  //or value[0] will give you: http://a.com
   } else {
    console.log("Nope");
   };
});
于 2013-10-03T17:42:28.763 回答