У цій статті
Що таке JSON5?
JSON5 — це надмножина JSON, яка додає можливості, натхненні синтаксисом ECMAScript 5.1. Він був створений, щоб зробити JSON більш зручним для файлів конфігурації та випадків, коли люди пишуть і читають JSON вручну. Кожен дійсний документ JSON також є дійсним JSON5, але JSON5 додає коментарі, кінцеві коми, ключі без лапок та інші зручності.
Специфікація JSON5 була завершена у 2018 році і широко прийнята в інструментарії JavaScript. Інструменти збірки, такі як Babel, Next.js і Webpack, приймають файли конфігурації JSON5. Конвертація JSON5 у стандартний JSON необхідна при взаємодії з системами, які розуміють лише строгий JSON, такими як API, бази даних і більшість мов програмування.
Можливості JSON5
JSON5 додає кілька синтаксичних розширень, які полегшують написання та підтримку файлів конфігурації.
- Коментарі — дозволені як однорядкові (//), так і багаторядкові (/* */) коментарі, роблячи файли конфігурації самодокументованими
- Кінцеві коми — масиви та об'єкти можуть мати кому після останнього елемента, зменшуючи шум у діфах
- Ключі без лапок — ключі об'єктів, які є дійсними ідентифікаторами ECMAScript, не потребують лапок
- Шістнадцяткові числа — числові значення можна записувати як 0xFF, корисно для кольорових кодів у конфігурації
- Багаторядкові рядки — значення рядків можуть охоплювати кілька рядків з використанням продовження зворотним слешем
- Спеціальні числові значення — Infinity, -Infinity та NaN є дійсними числовими літералами в JSON5
Спробуйте безкоштовно — реєстрація не потрібна
Конвертувати JSON5 у JSON →Де використовується JSON5
JSON5 використовується переважно в інструментарії екосистеми JavaScript, де файли конфігурації пишуться та підтримуються розробниками.
- Babel — файли .babelrc і babel.config.json5 підтримують синтаксис JSON5 для конфігурації збірки з коментарями
- TypeScript — tsconfig.json підтримує можливості JSON5, такі як коментарі та кінцеві коми (технічно JSONC)
- Chrome DevTools — профілі обмеження мережі та інші налаштування використовують формат JSON5
- Next.js — файли конфігурації приймають JSON5 для зручного налаштування з вбудованою документацією
Часті запитання
Чи можуть браузери аналізувати JSON5 нативно?
Ні. Браузери підтримують лише стандартний JSON через JSON.parse(). Щоб аналізувати JSON5 у браузері або додатку Node.js, вам потрібен npm-пакет json5. Інструменти збірки, які підтримують JSON5, обробляють аналіз внутрішньо під час етапу збірки.
Яка різниця між JSON5 та JSONC?
JSONC (JSON з коментарями) додає лише підтримку коментарів до JSON. JSON5 — це ширша надмножина, яка додає коментарі, кінцеві коми, ключі без лапок, шістнадцяткові числа, багаторядкові рядки та спеціальні числові значення. tsconfig.json TypeScript і settings.json VS Code використовують JSONC, тоді як Babel та інші інструменти використовують повний JSON5.
Чи JSON5 те саме, що YAML?
Ні. JSON5 залишається близьким до синтаксису JSON з невеликими ергономічними доповненнями. YAML — це зовсім інший формат зі структурою на основі пробілів, якорями та багатьма іншими можливостями. JSON5 легше конвертувати в JSON, оскільки він є строгою надмножиною. Конвертація YAML у JSON може бути з втратами, оскільки YAML підтримує типи даних, яких немає в JSON.