7

如果我有这样的 JSON 对象:

{
    "message": {
        "name": { "stringLengthTooShort": "blub" }
    }
}

属性的名称(这里)stringLengthTooShort每次都在变化,我怎么能简单地name用 JS 获取子属性?此刻我有message.name,但我现在怎么可能得到它的孩子呢?

4

1 回答 1

11

如果它始终是 的第一个属性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]);

于 2011-04-30T14:15:39.437 回答