如何使用JavaScript在JSON中找到第二个键名

4
我有以下JSON消息。
[{"Num": 10, "SubLoc": "Chamr"}, {"Num": 34, "SubLoc": "angala"}, {"Num": 4, "SubLoc": "avano"}]

我应该如何使用javascript或jquery仅查找第二个键值(例如,在上面的情况下为SubLoc)?我不想在javascript对象中使用硬编码的值,因为每个消息中的键值都会更改。
编辑: 下面的代码可以为我们提供键:值数据
jobs = [{"Num": 10, "SubLoc": "Chamr"}, {"Num": 34, "SubLoc": "angala"}, {"Num": 4, "SubLoc": "avano"}]

jobs.forEach(function(job) {
Object.keys(job).forEach(function(key) {
    alert(key + ':' + job[key]);
});
});

我只需要第二个关键字“SubLoc”的数据,即在这种情况下。

1
什么是“查找”?对象中的属性是无序的。 - Satpal
显示并稍后用作JavaScript变量 :) - Satheesh Panduga
你能至少展示伪代码吗? - Satpal
我添加了用于提取键值数据的代码,但我只需要第二项(SubLoc)的键数据。 - Satheesh Panduga
谢谢 Nina 的帮助!你能否将代码发短信给我,但不要使用 forEach 循环? - Satheesh Panduga
显示剩余7条评论
3个回答

2
var jobs = [{ "Num": 10, "SubLoc": "Chamr" }, { "Num": 34, "SubLoc": "angala" }, { "Num": 4, "SubLoc": "avano" }]
var secondKey;
jobs.some(function (job) {
    Object.keys(job).forEach(function (key) {
        if (key !== 'Num') {
            secondKey = key;
        }
    });
    return true;
});
alert(secondKey);

0
这里有一个关于这个的jsfiddle
var dataJson = '[{"Num": "10", "SubLoc": "Chamr"}, {"Num": "34", "SubLoc": "angala"}, {"Num": "4", "SubLoc": "avano"}]';

var data = JSON.parse(dataJson);



for (var eachObj in data){
    var keys = Object.keys(data[eachObj]);

    alert(keys[1] + ' : ' + data[eachObj][keys[1]]);
}

嗨,我不想使用硬编码的'SubLoc'作为关键数据,因为JSON消息中的数据会更改。请在问题中阅读我的请求。 - Satheesh Panduga
我的请求是不获取键SubLoc的值,该值为'angala'。我希望在Javascript中显示SubLoc本身,而没有硬编码的值。 - Satheesh Panduga

0
jobs = [{"Num": 10, "SubLoc": "Chamr"}, {"Num": 34, "SubLoc": "angala"},{"Num": 4, "SubLoc": "avano"}]
var secondKeyValue = Object.keys(jobs[0])[1];
alert( secondKeyValue)

嗨,Nahum,这个更改可以工作... var secondKeyValue = Object.keys(job)[1];.. 这会给我们“SubLoc”,但是这在for each循环中.. 你能否建议我不使用循环? - Satheesh Panduga
你如何在不用循环的情况下迭代数组?你必须使用for循环。 - Nahum
嗨,Nahum,我只需要第二个关键数据...例如,第一个JSON消息是[{Num,SubLoc},{Num,SubLoc},{Num,SubLoc}],第二个JSON消息是[{Num,Geo},{Num,Geo},{Num,Geo}]。因此,如果您看到模式,则Num保持与第一个键相同。但是第二个键会更改。在每个JSON消息中,我想访问第二个键的数据。因此,我需要第二个键的数据,而无需任何循环,因为每个JSON消息中的所有第二个键值都将相同。 - Satheesh Panduga
好的,所以你只需要第二个键的名称,而不是值。我会更新我的答案。 - Nahum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接