Інструменти розробника

Конвертер JSON ↔ YAML

Перетворюйте JSON на YAML або YAML на JSON локально, з вкладеними масивами, рядками й точними числами.

Ваші дані

Перетворення даних YAML 1.2. Коментарі й форматування не зберігаються. Ліміт: 2 MiB.

Ваші результати

Перетворіть JSON і YAML з потрібними типами даних

Перетворіть сумісні з JSON дані між суворим JSON і базовим синтаксисом YAML 1.2. Конвертер зберігає початковий запис чисел JSON, включно з великими цілими, без попереднього округлення через числа JavaScript. Він перетворює значення даних, а не оформлення початкового документа чи схему конфігурації застосунку. Коментарі, якорі й варіанти оформлення YAML не зберігаються під час перетворення на JSON.

Покрокова інструкція

  1. Вставте текст або відкрийте локальний файл JSON, YAML, YML чи TXT у UTF-8. Явно виберіть JSON → YAML або YAML → JSON; відкриття файлу не визначає напрямок.
  2. Виберіть два або чотири пробіли й за потреби сортування ключів об'єктів. Обробіть дані та усуньте помилки синтаксису чи непідтримуваних функцій. Сортування рекурсивне, лексикографічне й враховує регістр; порядок масивів зберігається.
  3. Перевірте рядки, логічні значення, 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.

Чи безпечні великі числа в застосунку призначення?

Конвертер зберігає підтримуваний запис чисел і значення великих цілих, але наступна програма може розібрати їх із меншою точністю. Використовуйте рядок у лапках, якщо схоже на число значення є ідентифікатором, і перевірте парсер застосунку призначення.