Инструменты разработчика
Конвертер JSON ↔ YAML
Преобразуйте JSON в YAML или YAML в JSON локально, с вложенными массивами, строками и точными числами.
Ваши результаты
Преобразуйте JSON и YAML с нужными типами данных
Преобразуйте совместимые с JSON данные между строгим JSON и базовым синтаксисом YAML 1.2. Конвертер сохраняет исходную запись чисел JSON, включая большие целые, без предварительного округления через числа JavaScript. Он преобразует значения данных, а не оформление исходного документа или схему конфигурации приложения. Комментарии, якоря и варианты оформления YAML не сохраняются при преобразовании в JSON.
Пошаговая инструкция
- Вставьте текст или откройте локальный файл JSON, YAML, YML либо TXT в UTF-8. Явно выберите JSON → YAML или YAML → JSON; открытие файла не определяет направление.
- Выберите два или четыре пробела и при необходимости сортировку ключей объектов. Обработайте данные и устраните ошибки синтаксиса или неподдерживаемых функций. Сортировка рекурсивная, лексикографическая и учитывает регистр; порядок массивов сохраняется.
- Проверьте строки, логические значения, null и числа, затем скопируйте, распечатайте или скачайте converted.yaml либо converted.json. Если меняете данные или настройки, обработайте снова, поскольку старый результат очищается. Проверьте преобразованный файл в приложении, которое будет его использовать.
Настройки и ограничения
- Типы и правила документа
- Используйте один документ YAML 1.2 с уникальными строковыми ключами и совместимыми с JSON значениями. Заключайте похожие на числа идентификаторы, например "00123", в кавычки; YAML 00123 без кавычек становится числом 123. Значения yes, on без кавычек и текст даты ISO остаются строками по базовым правилам.
- Псевдонимы и неподдерживаемые функции
- Ациклические псевдонимы разворачиваются в повторяющиеся значения. Циклы, повторные ключи, нестроковые ключи, неподдерживаемые теги и неконечные числа отклоняются. Ключи слияния YAML не применяются: <<: *base становится обычным свойством "<<", поэтому сначала разверните предполагаемые наследуемые поля.
- Размер и сложность
- Входные данные ограничены 2 MiB текста UTF-8: 2,097,152 байта. Вывод ограничен 8 MiB. Обработка также останавливается при превышении 128 уровней вложенности, 200,000 узлов значений или 100 обращений к псевдонимам; даже небольшой файл может превысить эти ограничения.
Разбор примера
Скачайте types-example.json и выберите JSON → YAML с отступом в два пробела и выключенной сортировкой. Преобразуйте и сравните с types-example.yaml. Заключённые в кавычки id и word остаются строками, enabled остаётся false, а retries и large — числами.
Скачать файлы примера
Пример исходных данных
{"id":"00123","word":"yes","enabled":false,"retries":3,"large":9007199254740993}Ожидаемый результат
"id": "00123"
"word": "yes"
"enabled": false
"retries": 3
"large": 9007199254740993Теперь откройте types-example.yaml, явно переключитесь на YAML → JSON и обработайте снова. id должен остаться "00123", а большое целое — 9007199254740993. Удалите кавычки вокруг 00123 в YAML и повторите: значение становится числом 123. Эта разница важна для идентификаторов, даже когда оба файла корректны.
Вопросы и устранение неполадок
Почему JSON с повторяющимися ключами здесь не принимается, а в другом инструменте форматируется?
Форматтер JSON может предупреждать о повторных ключах и сохранять их. Этот конвертер отклоняет их, поскольку преобразование в отображение ключей и значений могло бы изменить смысл. Решите, какое значение должно быть в исходнике, и удалите повтор перед преобразованием.
Сохранятся ли комментарии и наследование YAML?
В JSON нет комментариев или якорей. Псевдонимы разворачиваются, а ключи слияния экспортируются буквально вместо применения наследования. Разверните предполагаемые данные и проверьте результат; преобразование не является точным переписыванием всех возможностей YAML.
Безопасны ли большие числа в приложении назначения?
Конвертер сохраняет поддерживаемую запись чисел и значения больших целых, но последующая программа может разобрать их с меньшей точностью. Используйте строку в кавычках, если похожее на число значение — идентификатор, и проверьте парсер приложения назначения.