Как пользоваться
- Вставьте YAML в поле Текст YAML.
- Прочитайте Корректность. Если там указаны строка и столбец, исправьте YAML в этом месте.
- Если YAML содержит несколько документов, Текст JSON будет одним массивом с элементом для каждого документа.
- Скопируйте Текст JSON или скачайте его как data.json.
Как читается YAML
YAML 1.2 описан спецификацией, которая задаёт, как читаются отступы, имена, списки, текст в кавычках и блоки. Страница читает текст библиотекой yaml, которая следует этой спецификации, а затем записывает результат в JSON.
- Словарь становится объектом JSON, и его имена идут в том порядке, в котором записаны. Последовательность становится массивом. Слова true, false и null становятся логическими значениями и null, а текст в кавычках остаётся текстом.
- Целое число сохраняет каждую цифру. Повторяющееся имя в одном словаре считается ошибкой, потому что JSON сохранил бы только одно из значений.
- У значения вроде .inf или .nan нет вида JSON, поэтому оно отклоняется, а не записывается как null или как изменённое число.
Несколько документов и псевдонимы
Файл YAML может содержать несколько документов, каждый из которых начинается со строки ---. Преобразователь читает их все. Один документ даёт одно значение JSON; несколько дают массив JSON с элементом на каждый документ, в порядке следования. Псевдоним (*name) заменяется значением, на которое он указывает. Файл, который повторяет псевдоним так часто, что результат раздулся бы до огромного размера, отклоняется.
Пример: файл из двух документов
Пример 2.7 спецификации YAML 1.2, «Два документа в потоке», содержит список лучших хоумранщиков, затем строку ---, затем список команд. После преобразования получается массив JSON из двух массивов, по одному на каждый документ.
Первый массив содержит трёх игроков, второй — две команды, в том порядке, в котором они записаны.
| Документ | Элемент JSON |
|---|---|
| 1 | ["Mark McGwire", "Sammy Sosa", "Ken Griffey"] |
| 2 | ["Chicago Cubs", "St Louis Cardinals"] |
Частые вопросы
Почему ошибка показывает строку и столбец?
Позиция — это место, где парсер заметил проблему, счёт идёт с единицы. Сама ошибка может находиться немного раньше, например неверный отступ в строке перед указанной.
Что значит замечание о нескольких документах?
Каждая строка, которая начинается с ---, открывает новый документ. Тогда JSON — массив с одним элементом на каждый документ, в порядке следования. Если вы имели в виду один документ, удалите лишнюю строку ---.
Почему .inf или .nan дают ошибку?
В JSON нет бесконечности и значения «не число», поэтому такое значение нельзя записать без изменения. Замените его числом или текстом и преобразуйте YAML заново.
Меняются ли числа при преобразовании?
Целые числа сохраняют каждую цифру, поэтому 12345678901234567890 записывается точно. Дробное число записывается ближайшим числом JavaScript, так что 1.50 становится 1.5 с тем же значением.
Сохраняется ли в JSON порядок имён?
Да. Имена идут в том порядке, в котором записаны в YAML. Объект JavaScript переставил бы имя вроде 2024 в начало, а этот преобразователь так не делает.
Загружается ли мой YAML куда-нибудь?
Нет. Преобразование выполняется в вашем браузере, и ничего из вставленного не отправляется на наш сервер.
Источники
- YAML Ain't Markup Language (YAML) revision 1.2.2 (на английском)
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format (на английском)
- yaml: JavaScript-библиотека YAML, на которой работает страница (на английском)
Цифры и текст в последний раз проверены вторник, 10 ноября 2026 г..