Отформатируйте данные yaml с дефисом для записи в машинописный файл - PullRequest
1 голос
/ 18 июня 2020

Я использую js -yaml в машинописном тексте. Мне нужно записать в файл yaml, чтобы он был отформатирован следующим образом (обратите внимание на дефис):

- description: the description
  id: 4265019
  parameters:
    label1: data1
    label2: data2
- description: the description 2
  id: 4265020
  parameters:
    label3: data3
    label4: data4

Но я не могу понять, как поставить дефис перед ним, когда я создаю объект в машинописном тексте, чтобы описание, идентификатор и параметры были частью одного и того же объекта без уникального имени для каждого . Вот что у меня есть на данный момент:

let data = { 
    description: "The description",
    id: 4265019,
    parameters: {
        label1: "data1",
        label2: "data2",
    }
};
let data2 = {
    description: "The description 2",
    id: 4265020,
    parameters: {
        label3: "data3",
        label4: "data4",
    }
};
let data3 = {
    data, data2
};

let yamlStr = yaml.safeDump(data3);
fs.writeFileSync(filePath, yamlStr, 'utf8');

Но это создает два отдельных объекта как «data» и «data2», когда я хочу, чтобы они начинались с «- description». У кого-нибудь есть советы?

1 Ответ

1 голос
/ 19 июня 2020

Хорошо, я понял это, немного поиграв с ним. Он должен быть отформатирован как набор пар ключ-значение, как если бы вы писали по адресу json:

let data = 
[{
    description: "The description",
    id: 4265019,
    parameters: {
        label1: "data1",
        label2: "data2"
    }
},
{
    description: "The description 2",
    id: 4265020,
    parameters: {
        label3: "data3",
        label4: "data4"
    }
}];

// Write to file
let yamlStr = yaml.safeDump(data);
fs.writeFileSync(this.changedWordsFile, yamlStr, 'utf8');

Таким образом формат отображается с дефисом перед описанием.

...