aspose.info
BG

YAML файлов формат

Обновено

Какво е YAML файл?

YAML файлът се състои от език YAML (YAML не е език за маркиране), който е базиран на Unicode език за сериализиране на данни; използвани за конфигурационни файлове, интернет съобщения, постоянство на обекти и т.н. YAML използва разширението .yaml за своите файлове. Синтаксисът му не зависи от конкретен език за програмиране. По принцип YAML е проектиран за човешко взаимодействие и да работи добре със съвременните езици за програмиране. Поддръжката за сериализиране на произволни естествени структури от данни увеличи четимостта на YAML файловете, но направи малко сложни процеса на анализиране и генериране на файлове.

Кратка история

YAML е предложен за първи път през 2001 г. и е разработен от Clark Evans, Ingy döt Net и Oren Ben-Kiki. За първи път се каза, че YAML означава „Още един език за маркиране“, за да се посочи неговата цел като език за маркиране. По-късно той беше преназначен като „YAML Aint Markup Language“, за да посочи целта си като ориентирана към данни.

YAML файлов формат

YAML файлът се състои от следните типове данни

  • Скалари: Скаларите са стойности като низове, цели числа, булеви стойности и др.
  • Поредици: Поредиците са списъци с всеки елемент, започващ с тире (-). Списъците също могат да бъдат вложени.
  • Картографиране: Картографирането дава възможност за изброяване на ключове със стойности.

Синтаксис

  • Бяло пространство: Вдлъбнатината на празното пространство се използва за обозначаване на влагане и цялостна структура.
име: Джон Смит
контакт:
дом: 1012355532
офис: 5002586256
адрес:
улица: |
123 алея Торнадо
Апартамент 16
град: East Centerville
състояние: KS
  • Коментари: Коментари се пишат, започвайки със символа “#”.
# Това е YAML коментар
  • Списъци: Тире (-) се използва за обозначаване на членове на списъка, като всеки член е на отделен ред. Членовете на списъка могат също да бъдат затворени в квадратни скоби ([…]), като членовете са разделени със запетаи (,).
  - A
  - B
  - C
[A, B, C]
  • Асоциативен масив: Асоциативен масив е ограден с къдрави скоби ({…}). Ключовете и стойностите са разделени с двоеточие (:) и всяка двойка е разделена със запетая (,).
  {name: John Smith, age: 20}
  • Низове: Низът може да бъде написан със или без двойни кавички (") или единични кавички (’).
Примерен низ
"Примерен низ"
„Примерен низ“
  • Скаларно блоково съдържание: Скаларното съдържание може да бъде записано в блокова нотация, като се използва следното:
    • |: All live breaks are significant.
    • >: Each line break is folded to space. It removes the leading whitespace for each line.
данни: |
YAML
(YAML не е език за маркиране)
е език за сериализиране на данни
данни: ?
YAML (YAML не е език за маркиране)
е език за сериализиране на данни
  • Множество документи: Няколко документа са разделени с три тирета (—) в един поток. Тиретата показват началото на документа. Тиретата се използват и за разделяне на директиви от съдържанието на документа. Краят на документа се обозначава с три точки (…).
  ---
Документ 1
  ---
Документ 2
...
  • Тип: За указване на типа на стойността се използват двойни удивителни знаци (!!).
a: !!float 123
b: !!str 123
  • Етикет: За да присвоите етикет на бележка, се използва амперсанд (&), а за препратка към този възел се използва звездичка (*).
име: Джон Смит
фактуриране до: &id01
улица: |
123 алея Торнадо
Апартамент 16
град: East Centerville
състояние: KS

изпращане до: *id01
  • Директиви: YAML документите могат да бъдат предшествани от директиви в поток. Директивите започват със знак за процент (%), последван от името и след това параметрите, разделени с интервали.
%YAML 1.2
  ---
Съдържание на документа

Пример за YAML файл

Тук можете да видите пример на docker yaml файл по-долу:

topology:
database_node_name: docker_controller
docker_controller_node_name: docker_controller
self_service_portal_node_name: docker_controller
kvm_compute_node_names: kvm_compute1
docker_compute_node_names: docker_compute1

YAML срещу JSON

По принцип и JSON, и YAML са разработени, за да осигурят четим от човека формат за обмен на данни. YAML е реализиран като надмножество на JSON формат. Това означава, че можем да анализираме JSON с помощта на YAML анализатор. Въпреки че практическото прилагане на тази теория е малко сложно. Следователно някои основни разлики между YAML и JSON са дадени по-долу:

YAMLJSON
Сложен и отнемащ време процес на анализиране на сериализирани данниБързо и лесно анализирайте JSON сериализирани данни с по-опростен дизайн
По-малко подкрепа от общносттаПо-голяма подкрепа и популярност на общността
Поддържа коментариНе поддържа коментари
Възможност за използване на препратка към други обекти с данниНевъзможно сериализиране на сложни структури с препратки към обекти
Йерархията се обозначава с помощта на двойни интервали. Табулаторите не са разрешениОбектите и масивите се обозначават със скоби и скоби.
Кавичките на низовете не са задължителни, но поддържа единични и двойни кавички.Низовете трябва да са в двойни кавички.
Коренният възел може да бъде всеки от валидните типове данниКоренният възел трябва да бъде или масив, или обект.

Препратки

Вижте също