Этот блог содержит основы 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
  }
 }
}