如何迭代 YAML 配置并获取选项?

How to iterate over YAML config and get options?

我有这个 YAML 配置文件:

sheets:
  list1:
    name: 'sheet1'
    sql: 'SELECT'
  list2:
    name: 'sheet2'
    sql: 'SELECT'
  list3:
    name: 'sheet3'
    sql: 'SELECT'

我使用库 'js-yaml' 来解析 YAML 配置。 例如,我想控制台记录所有列表名称。我怎样才能做到这一点?我在 JS 中有这样的东西:

for(sheet in config.sheets) {
    console.log(sheet.name);
}

当我在循环中执行 console.log(sheet) 时,我得到列表 1、列表 2、列表 3,但是在循环中 console.log(sheet.name) 不起作用。

您应该使用 js-yaml 之类的工具,首先将您的 yaml 转换为 js literal

const yaml = require('js-yaml');
let data = yaml.load(config);

它将return这样的数据:

 {
       sheets: {
          list1: {
           name: "sheet1",
           sql: 'SELECT'
        },
......other lists
     }
   }

那你就可以

const data = {
  sheets: {
    list1: {
      name: "sheet1",
      sql: 'SELECT'
    },
    list2: {
      name: "sheet2",
      sql: 'SELECT'
    }
  }
}

const name = Object.values(data.sheets).map(item => item.name)
console.log(values);