JavaScript/JSON:获取对象的未知属性

7
如果我有一个如下的JSON对象:
{
    "message": {
        "name": { "stringLengthTooShort": "blub" }
    }
}

属性的名称(这里)stringLengthTooShort每次都在更改,我该如何使用JS简单地获取name的子属性? 目前我有message.name,但我现在如何获取它的子属性?

1个回答

13

如果它始终是message.name的第一个属性,您可以这样做:

var keys = [];
for (var l in message.name) {
  if (message.name.hasOwnProperty(l)){
    keys.push(l);
  }
}
//=>first property value should now be in message.name[keys[0]]);
//  (its label is keys[0])

编辑:在本回答发布九年后,现代浏览器都支持es20xx,所以可以放心使用:

const obj = {
    "message": {
        "name": { "stringLengthTooShort": "blub" }
    }
};

console.log(Object.keys(obj.message.name)[0]);


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