Конвертация JSON to YAML
Мне нужно конвертировать json файл в yaml, но не включая в начало строки тире и заключить заголовок блока в квадратные скобки. Вот так
[Debian 11]
k8s-023.123.test.ru
k8s-024.123.test.ru
k8s-025.123.test.ru
Однако при просто конвертировании я получаю такой вывод.
Debian 11:
- k8s-023.123.test.ru
- k8s-024.123.test.ru
- k8s-025.123.test.ru
Ответы (1 шт):
Я бы посоветовал библиотеку js-yaml:
Установить библиотеку js-yaml с помощью npm: npm install js-yaml
Подключить библиотеку в коде: const yaml = require('js-yaml');
Преобразуй json файл в yaml формат таким образом:
const json = { Debian: 11, servers: ['k8s-023.123.test.ru', 'k8s-024.123.test.ru', 'k8s-025.123.test.ru'] } const yamlString = yaml.safeDump(json, { lineWidth: -1 }); console.log(yamlString);
Что должно отобразиться консоли:
Debian: 11 servers:
- k8s-023.123.test.ru
- k8s-024.123.test.ru
- k8s-025.123.test.ru
Чтобы получить заголовок блока в квадратных скобках и не включая в начало строки тире - опция noCompatMode: true.
const yamlString = yaml.safeDump(json, { lineWidth: -1, noCompatMode: true });
Есть ещё такой вариант:
yamlString = yamlString.replace(/^-/gm, '');
yamlString = yamlString.replace(/(\w+):/g, '[$1]');
console.log(yamlString)
Посмотри, что из этого сработает