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])

編集:この回答から9年後、最新のブラウザはすべてes20xxをサポートしているため、安全に使用できます:

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

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

于 2011-04-30T14:15:39.437 に答える