我有一个非常小的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。如果我将其更改为键值,则会将其打印出来。如果我尝试按键向下钻取,我只会遇到问题。
答案 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");
};
});