jQuery没有从JSON密钥获取值

时间:2013-10-03 17:35:01

标签: jquery json

我有一个非常小的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"
    ]
}

我试图通过密钥获得一个值。这是我的代码:

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

我所得到的只是Nope。如果我将其更改为键值,则会将其打印出来。如果我尝试按键向下钻取,我只会遇到问题。

3 个答案:

答案 0 :(得分:3)

尝试以下代码。变量值是一个数组,因此您需要循环它以获取每个项目。

$.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");
       };
    });
});

答案 1 :(得分: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

答案 2 :(得分:0)

key.value实际上是'undefined',然后是两个'Nope's

你可以像这样从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");
   };
});