Що це
JSON5 — розширення JSON для файлів, які пишуть вручну. Воно дозволяє коментарі, кінцеві коми, ключі об’єктів без лапок, рядки в одинарних лапках і кілька зручніших форм запису чисел. Babel, деякі збирачі та багато застосунків приймають JSON5 або JSONC (JSON із коментарями, який використовують tsconfig.json і налаштування VS Code) як формат конфігурації.
Проте багато парсерів, API та мов програмування приймають лише строгий JSON. Цей конвертер читає JSON5 або JSONC і виводить стандартний JSON, який зрозуміє будь-який парсер: усі ключі в подвійних лапках, без коментарів і кінцевих ком, числа в десятковому записі.
Як користуватися
- Вставте JSON5 або JSONC, завантажте файл
.json5,.jsoncчи.jsonабо натисніть Приклад. - Виберіть Відступ: 2 або 4 пробіли чи Компактно, щоб отримати один рядок.
- Виберіть, що робити з
InfinityіNaN: замінити наnull, замінити рядками або показати помилку. - Скопіюйте або завантажте 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. Також можна перетворити їх на рядки або показати помилку з точним шляхом до значення.
› Чи кудись надсилаються мої дані?
Ні. Розбір і перетворення виконуються повністю у браузері, тож конфігураційні файли із секретами не залишають ваш пристрій.