如何迭代 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);
我有这个 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);