В YAML вы сталкиваетесь с различными потоками символов следующим образом:
- Директивы
- Маркеры границ документа
- документы
- Полный поток
В этой главе мы обсудим их подробно.
Директивы
Директивы являются основными инструкциями, используемыми в процессоре YAML. Директивы — это детали представления, такие как комментарии, которые не отражены в дереве сериализации. В YAML нет способа определить частные директивы. В этом разделе обсуждаются различные типы директив с соответствующими примерами —
Зарезервированные Директивы
Зарезервированные директивы инициализируются тремя символами дефиса (—), как показано в примере ниже. Зарезервированные директивы преобразуются в конкретное значение JSON.
%YAML 1.1 --- !!str "foo"
Директива YAML
Директивы YAML являются директивами по умолчанию. При преобразовании в JSON извлекаемое значение включает символ косой черты в предшествующих и завершающих символах.
%YAML 1.1 --- !!str "foo"
Маркеры границ документа
YAML использует эти маркеры, чтобы позволить нескольким документам содержаться в одном потоке. Эти маркеры специально используются для передачи структуры документа YAML. Обратите внимание, что строка, начинающаяся с «—», используется для начала нового документа.
Следующий код объясняет это примерами:
%YAML 1.1 --- !!str "foo" %YAML 1.1 --- !!str "bar" %YAML 1.1 --- !!str "baz"
документы
Документ YAML рассматривается как единая собственная структура данных, представленная как один корневой узел. Детали представления в документе YAML, такие как директивы, комментарии, отступы и стили, не считаются содержимым, включенным в них.
В YAML используются два типа документов. Они объяснены в этом разделе —
Явные документы
Он начинается с маркера начала документа, за которым следует представление корневого узла. Пример явного объявления YAML приведен ниже —
--- some: yaml ...
Он включает в себя явные начальные и конечные маркеры, которые в данном примере являются «—» и «…». При преобразовании указанного YAML в формат JSON мы получаем вывод, как показано ниже —
{ "some": "yaml" }
Неявные документы
Эти документы не начинаются с маркера начала документа. Соблюдайте приведенный ниже код —
fruits: - Apple - Orange - Pineapple - Mango
Преобразуя эти значения в формат JSON, мы получаем вывод в виде простого объекта JSON, как показано ниже —
{ "fruits": [ "Apple", "Orange", "Pineapple", "Mango" ] }
Полный поток
YAML включает в себя последовательность байтов, называемых символьным потоком. Поток начинается с префикса, содержащего порядок байтов, обозначающий кодировку символов. Полный поток начинается с префикса, содержащего кодировку символов, за которым следуют комментарии.
Пример полного потока (символьный поток) показан ниже —