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



我有这个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)不起作用。

您应该使用js yaml这样的工具,首先将yaml转换为js literal

const yaml = require('js-yaml');
let data = yaml.load(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);

最新更新