Этот блог содержит основы YAML с короткими примерами. Правила, скаляры, объект, вложенные элементы, массив скаляров, массив объектов, нулевое значение, якоря и псевдоним, несколько документов в одном файле
- Ямл чувствителен к регистру
- вы не должны использовать вкладки, используйте вместо них пробел
- Комментарии однострочные и начинаются со знака #
- пара "ключ-значение". В парах "ключ-значение" после двоеточия должен стоять пробел.
# dart pubspec file name: my_dart_package version: 0.1
Если вы работали с pom.xml (maven) или package.json (js). полезно практиковать yaml, используя конвертер yaml в json или yaml в xml. Https://codebeautify.org/yaml-to-json-xml-csv
- В одном файле yaml может быть несколько документов yaml. Новый документ yaml начинается с трех тире и заканчивается (необязательно) тремя точками.
--- name: my_first_app ... --- name: my_second_app ...
- Постарайтесь сохранить отступ как один пробел. Оставляйте одинаковое количество места для каждого уровня.
- Массив одного скалярного значения
name: my_app tags: - dart - dartlang - flutter
Equaliant Json из вышеуказанного yaml
{ "name": "my_app", "tags": [ "dart", "dartlang", "flutter" ] }
- Создайте массив из пары объектов. Каждый рывок запускает новый объект
tags: - name1: dart value: one - name2: dartlang value: two
Equaliant Json из вышеуказанного yaml
{ "tags": [ { "name1": "dart", "value": "one" }, { "name2": "dartlang", "value": "two" } ] }
- Определите нулевое значение. используйте нуль или оператор тильды
--- address: city: sikar street: null sector: ~
- Вложенные элементы. используя отступ в новой строке
user: address1: city: skikar address2: city: gurgaon
Equaliant Json из вышеуказанного yaml
{ "user": { "address1": { "city": "skikar" }, "address2": { "city": "gurgaon" } } }
- Якоря и псевдонимы AKA ссылочные переменные. Создайте переменную с помощью & и ссылайтесь на нее с помощью *
user: presentAddress: city: sikar mobile: &myairtel 9810936551 permanentAddress: city: ggn mobile: *myairtel
Equaliant Json из вышеуказанного yaml
{ "user": { "presentAddress": { "city": "sikar", "mobile": 9810936551 }, "permanentAddress": { "city": "ggn", "mobile": 9810936551 } } }