JavaScript:
Работа с YAML
Как это сделать:
Мы будем использовать популярную библиотеку js-yaml
для разбора YAML в объекты JavaScript и строкового представления объектов JavaScript в YAML.
- Сначала установите библиотеку:
npm install js-yaml
- Разбор YAML в JavaScript:
const yaml = require('js-yaml');
const fs = require('fs');
try {
const doc = yaml.load(fs.readFileSync('config.yml', 'utf8'));
console.log(doc);
} catch (e) {
console.error(e);
}
Пример вывода, если config.yml
содержит:
version: 1
services:
- webapp
- database
Может выглядеть так:
{ version: 1, services: [ 'webapp', 'database' ] }
- Преобразование JavaScript в YAML:
const yaml = require('js-yaml');
const fs = require('fs');
let data = {
title: "Пример YAML",
description: "YAML это просто"
};
try {
const ymlText = yaml.dump(data);
fs.writeFileSync('example.yml', ymlText, 'utf8');
} catch (e) {
console.error(e);
}
Это создаст файл example.yml
со следующим содержанием:
title: Пример YAML
description: 'YAML это просто'
Глубокое погружение
YAML был создан в 2001 году, разработан так, чтобы его было легко читать для людей и удобно писать вручную. JSON и XML являются альтернативами, но они не так просты для восприятия человеком. Простота YAML может привести к проблемам безопасности, если он не реализован правильно, например, необходимо отключить !!python/object/apply
для предотвращения выполнения произвольного кода. Библиотеки, такие как js-yaml
, предлагают опции для настройки разбора и строкового представления YAML для добавления безопасности и функциональности.
Смотрите также
- Спецификация YAML 1.2: https://yaml.org/spec/1.2/spec.html
- GitHub репозиторий js-yaml: https://github.com/nodeca/js-yaml
- Статья о YAML в Википедии для дополнительной информации: https://en.wikipedia.org/wiki/YAML
- Сравнение JSON и YAML: https://phoenixnap.com/kb/yaml-vs-json