DevToolPal
UK

Конвертер JSON5 у JSON

Перетворює JSON5 або JSONC (коментарі, кінцеві коми, ключі без лапок, одинарні лапки) на строгий стандартний JSON.

Працює локально, нічого не завантажується на сервер

Параметри

Відступ

Вхідні дані

0 симв. · 0 B

Результат

0 симв. · 0 B

Що це

JSON5 — розширення JSON для файлів, які пишуть вручну. Воно дозволяє коментарі, кінцеві коми, ключі об’єктів без лапок, рядки в одинарних лапках і кілька зручніших форм запису чисел. Babel, деякі збирачі та багато застосунків приймають JSON5 або JSONC (JSON із коментарями, який використовують tsconfig.json і налаштування VS Code) як формат конфігурації.

Проте багато парсерів, API та мов програмування приймають лише строгий JSON. Цей конвертер читає JSON5 або JSONC і виводить стандартний JSON, який зрозуміє будь-який парсер: усі ключі в подвійних лапках, без коментарів і кінцевих ком, числа в десятковому записі.

Як користуватися

  1. Вставте JSON5 або JSONC, завантажте файл .json5, .jsonc чи .json або натисніть Приклад.
  2. Виберіть Відступ: 2 або 4 пробіли чи Компактно, щоб отримати один рядок.
  3. Виберіть, що робити з Infinity і NaN: замінити на null, замінити рядками або показати помилку.
  4. Скопіюйте або завантажте JSON.

Якщо у вхідних даних є синтаксична помилка, у повідомленні вказано рядок і стовпець, і до них можна одразу перейти. Звичайний JSON теж є коректним JSON5, тож інструментом можна перевірити, чи розбирається файл, і заодно переформатувати його.

Приклад

Така конфігурація в JSON5:

// Server settings
{
  host: 'localhost',
  port: 0x1F90,      // 8080
  ratio: .5,
  tags: ['api', 'v2',],
}

перетворюється на такий строгий JSON:

{
  "host": "localhost",
  "port": 8080,
  "ratio": 0.5,
  "tags": [
    "api",
    "v2"
  ]
}

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

Що перетворюється

  • Видаляються рядкові коментарі // і блокові /* */.
  • Ключі без лапок, як-от port, і рядки в одинарних лапках, як-от 'localhost', отримують подвійні лапки.
  • Рядки, продовжені зворотною скісною рискою в кінці рядка, об’єднуються в один.
  • Шістнадцяткові числа (0xFF), десяткова крапка на початку чи в кінці (.5, 5.) та явний знак плюс (+3) стають звичайними десятковими числами.
  • Кінцеві коми в об’єктах і масивах прибираються.
  • Якщо ключ трапляється двічі, перемагає останнє значення, як у JavaScript.

Часті запитання

› Чим JSON5 відрізняється від JSONC?

JSONC — це JSON із коментарями (а у VS Code ще й із кінцевими комами). JSON5 іде далі: ключі без лапок, рядки в одинарних лапках, багаторядкові рядки, шістнадцяткові числа, десяткова крапка на початку чи в кінці числа, Infinity і NaN. JSON5 — надмножина JSONC, тому інструмент читає обидва формати.

› Чи зберігаються коментарі?

Ні. У стандартному JSON немає синтаксису коментарів, тож їх видаляють. Якщо вони потрібні, зберігайте вихідний файл у JSON5 і генеруйте JSON із нього.

› Що відбувається з Infinity і NaN?

Строгий JSON не може їх подати. Типово вони стають null, як у JSON.stringify в JavaScript. Також можна перетворити їх на рядки або показати помилку з точним шляхом до значення.

› Чи кудись надсилаються мої дані?

Ні. Розбір і перетворення виконуються повністю у браузері, тож конфігураційні файли із секретами не залишають ваш пристрій.