如何遍历YAML配置并获取选项?

时间:2020-08-17 14:12:43

标签: javascript node.js configuration yaml config

我有这个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)时,我得到了list1,list2,list3,但是循环中的console.log(sheet.name)无法工作。

1 个答案:

答案 0 :(得分:1)

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

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

它将返回如下数据:

 {
       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);