Стили потока в YAML можно рассматривать как естественное расширение JSON, чтобы покрыть складывающиеся строки содержимого для лучшей читабельности, которая использует якоря и псевдонимы для создания экземпляров объекта. В этой главе мы сосредоточимся на представлении следующих концепций:
- Узлы псевдонимов
- Пустые узлы
- Flow Скалярные стили
- Стили коллекции Flow
- Узлы потока
Пример псевдонимов узлов показан ниже —
%YAML 1.2 --- !!map { ? !!str "First occurrence" : &A !!str "Foo", ? !!str "Override anchor" : &B !!str "Bar", ? !!str "Second occurrence" : *A, ? !!str "Reuse anchor" : *B, }
Вывод JSON кода, приведенного выше, приведен ниже —
{
"First occurrence": "Foo",
"Second occurrence": "Foo",
"Override anchor": "Bar",
"Reuse anchor": "Bar"
}
Узлы с пустым содержимым считаются пустыми узлами. Следующий пример показывает это —
%YAML 1.2 --- !!map { ? !!str "foo" : !!str "", ? !!str "" : !!str "bar", }
Вывод пустых узлов в JSON представлен ниже:
{
"": "bar",
"foo": ""
}
Скалярные стили потока включают в себя двойные, одинарные и простые типы. Основной пример для того же приведен ниже —
%YAML 1.2 --- !!map { ? !!str "implicit block key" : !!seq [ !!map { ? !!str "implicit flow key" : !!str "value", } ] }
Вывод в формате JSON для приведенного выше примера показан ниже —
{
"implicit block key": [
{
"implicit flow key": "value"
}
]
}
Коллекция потоков в YAML вложена вместе с коллекцией блоков в другую коллекцию потоков. Записи сбора потока заканчиваются запятой ( , ). В следующем примере подробно объясняется блок сбора потока —
%YAML 1.2 --- !!seq [ !!seq [ !!str "one", !!str "two", ], !!seq [ !!str "three", !!str "four", ], ]
Вывод для сбора потока в JSON показан ниже —
[
[
"one",
"two"
],
[
"three",
"four"
]
]
Стили потока, такие как JSON, включают индикаторы начала и конца. Единственный стиль потока, который не имеет какого-либо свойства, это простой скаляр.
%YAML 1.2 --- !!seq [ !!seq [ !!str "a", !!str "b" ], !!map { ? !!str "a" : !!str "b" }, !!str "a", !!str "b", !!str "c",]
Вывод кода, показанного выше в формате JSON, приведен ниже —