【问题标题】:JavaScript/JSON: Get unknown property of an objectJavaScript/JSON:获取对象的未知属性
【发布时间】:2011-08-16 02:00:36
【问题描述】:

如果我有这样的 JSON 对象:

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

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

【问题讨论】:

    标签: javascript json javascript-objects


    【解决方案1】:

    如果它始终是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]);

    【讨论】:

    • 在较新的浏览器中,可以使用Object.keys:message.name[Object.keys(message.name)[0]]
    • @Pumbaa80 我知道,但我喜欢提供跨浏览器解决方案,甚至 IE9 也不支持这种好用且方便的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 2012-12-04
    相关资源
    最近更新 更多