javascript - 使用动态属性名称访问嵌套属性

标签 javascript arrays json

我有一个从这个 JSON 生成的对象:

{
    "data":  {
        "Meta Data": {
            "1. Information": "Monthly Prices (open, high, low, close) and Volumes",
            "2. Symbol": "MSFT",
            "3. Last Refreshed": "2017-08-18",
            "4. Time Zone": "US/Eastern"
        },
        "Monthly Time Series": {
            "2017-08-18": {
                "1. open": "73.1000",
                "2. high": "74.1000",
                "3. low": "71.2800",
                "4. close": "72.4900",
                "5. volume": "285933387"
            },
            "2017-07-31": {
                "1. open": "69.3300",
                "2. high": "74.4200",
                "3. low": "68.0200",
                "4. close": "72.7000",
                "5. volume": "451248934"
            }
        }
    }
}

使用 Object.keys(),我能够获得键“Monthly time series”,但如何访问其中的键?我想通过“每月时间序列”键中存在的键运行 for 循环。我该怎么做?

最佳答案

您可以使用 Object.keys()获取键数组,但我建议使用 Array.prototype.forEach() 迭代键数组而不是 for...loop .

代码:

const obj = {"data": {"Meta Data": {"1. Information": "Monthly Prices (open, high, low, close) and Volumes","2. Symbol": "MSFT","3. Last Refreshed": "2017-08-18","4. Time Zone": "US/Eastern"},"Monthly Time Series": {"2017-08-18": {"1. open": "73.1000","2. high": "74.1000","3. low": "71.2800","4. close": "72.4900","5. volume": "285933387"},"2017-07-31": {"1. open": "69.3300","2. high": "74.4200","3. low": "68.0200","4. close": "72.7000","5. volume": "451248934"}}}};

Object
  .keys(obj.data['Monthly Time Series'])
  .forEach(function (k) {
    console.log(obj.data['Monthly Time Series'][k]['1. open']);
  });

关于javascript - 使用动态属性名称访问嵌套属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45795569/

相关文章:

ios - 在 Swift 中使用 Alamofire 解析 JSON 响应

javascript - 在 Javascript 和 Dhtmlx 中创建复选框

python - 更改数组数组中的值似乎会更改下一个数组中的相应值

javascript - 桌面和移动设备的不同脚本

c++ - 将 vector 复制到数组?

arrays - 无法插入 : ERROR: array value must start with "{" or dimension information

arrays - ColdFusion - 循环遍历数组中的嵌套结构

json - 使用 powershell 编辑 .json 文件

javascript - 兼容所有版本 Bingmap Control 的 JavaScript

javascript - 插件不会触发使用 CRM 2016 中的操作创建的自定义消息