Українська

Інструменти розробника · JSON форматування & реаніматор

Чому JSON не має коментарів: дизайнерське рішення та його роботи

· Підземелля

Опубліковано ToolAcre · Редакція журналу

свінгери стандарти введення

Чому JSON не має коментарів: проектне рішення та його роботи JSON токени і точний контрольний ліміт
Головна ToolAcre векторна ілюстрація

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

Коментар, який зламав споруду

Коментар, що зламали будівництво — корисною заміткою, доданою до JSON налаштування та аналізатор, який припинив на першому війні. Автор може мати скопіювати шаблон з JavaScript або JSONC- редактор програм, в той час як інструмент розгортання використовує суворий JSON. Синтаксис висвітлення може зробити замітку правдивим, навіть якщо споживач відхиляє від першого маркера коментаря.

Коментарі відхиляються, тому що slash не є JSON токен, де сканер очікує значення або учасника. ToolAcre не мовчки смужка JSONC або JSON5 синтаксис. Звичайна інформація про форму власності є звичайними даними і може порушувати додаток schema навіть якщо суворо JSON синтаксис приймає його. Непідтримані історичні вимоги JSON’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’.

Причина Кремфорда для видалення коментарів

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

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

Що звітує про те, що в коментарі

Що звітує про те, що в коментарі є дійсний адміністратор `//` і `/* */` не в граматиці, тому на перших сітках з лінією і стовпчиком. Сканер не об'єднує слів в замітці. Не можна починати будь-які дії JSON значення, ім'я члена або сепаратор з `/` на цій посаді.

Для `{"port":8080, // local only "secure":false}`, кома є чинним і наступний правовий токени повинен бути процитований назва власності або закриття латунь. Зіткнення порушує, що очікується. Видалення тільки замітки залишає дійсний сепаратор і наступний учасник; видалення поруч пунктуації може створити другу помилку. Відновити точний суворий вихід після кожного редагування.

Формати, які додали коментарі назад

Формати, які додали коментарі, - JSONC можливість отримання відгуків про інші дані JSON синтаксис, при цьому JSON5 додає зручності, такі як неможливі ключі ідентифікатора та причепи комами. Хйсон підкреслює редагування людини з додатковим розслабленим синтаксисом. YAML має власну граматику, в тому числі коментарі, і не дивно JSON з анотацією додано.

Приймання є споживчим специфікаціям: налаштування редактора та налаштування TypeScript можуть використовуватися коментуючі parsers, тоді як пакет проявляється або API тіло може вимагати суворого JSON. Кубернети зазвичай споживає YAML або JSON за його допомогою. Ім'я фактичного формату в документації та обробці файлів; розширення для видалення або виклик кожного об'єкта позначення “JSON«приховує межі сумісності.

Працівники всередині строгих JSON

Працівники в строгому режимі JSON — звичайний `_comment` або `//` ключові крамниці пояснюють як звичайний учасник рядка. Виживає суворе парування, оскільки як ключ, так і значення використовують стандартні токени. Кілька нот потрібно унікальні ключі або масив, оскільки імена дублікатів ненадійні і можуть бути згортані пасерами.

У роботі змінено модель даних. Шмама з `additionalProperties: false` може відхилити анотацію, а додаток може зберігатися або передавати його в якості реального налаштування. Зовнішня документація, сусід README або щіма `description` часто надає безпечний роз'яснення каналу. Використовуйте лише зареєстровані особи, коли кожен споживач явно дозволить і ігнорує їх.

Успішний приклад: файл налаштувань анотованого

У роботі приклад: анотований файл налаштувань — почати з JSONC джерело, що містить `// seconds before retry` до `"timeout":30`. Якщо пункт призначення приймається тільки JSON, використовувати парсер, який розуміє JSONC щоб виготовити дані, а потім послідовно проаналізувати дані як суворі JSON. Утворюється артефакт `{"timeout":30}` під час збереження джерела зберігає його пояснення.

Не видаляти коментарі з формальним виразом. Послідовності вій може з'явитися законно всередині рядків, таких як URL, і шаблони блоків-комментів можуть пропускати лінії, як і текстові зміни вад. Зберігати джерело і створити артефакт, встановіть суворий результат і влаштуйте регенерацію в будівлі. Цей зберігає авторські ноти без претендування отриманого парсера підтримує їх.

Що це не криється

Що це не криється — як налаштувати індивідуальні парсери, щоб прийняти коментарі, які є специфічними інструментами і часто змінами. Не змінено варіант в одній бібліотеці JSON граматика або гарантія того, що інший сервіс прийматиме той самий текст. Перевірити парсер, версію та призначення, а не переоцінювати на дисплеї редактора.

У статті також не передбачено жодних претензій щодо того, що були видалені коментарі, які прийняли кожну роботу в першу чергу або чи виникне одне рішення, що поодинці, що було викликано JSON’s популярності. Такі історичні затвердження потребують незалежних первинних джерел. Тут вони не мають права на єдину або виправлену роботу, підтримуваний висновок обмежений струмом Синтаксису, репозиторійною поведінкою та експлуатаційними відмінностями серед названих форматів.

Поруч: JSON - формат зміни даних, не настройка мови

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

Якщо жорстке JSON обов'язково перемістіть пояснення до документації або використовуйте schema-approved метаданих, потім встановіть кінцевий документ. ToolAcre навмисно повідомляє про перший вій замість тихого видалення матеріалу, оскільки мовчазний перетворення може змінити рядки або захопити формат невідповідним. Історичний контекст повинен залишатися однаково дисциплінований: непідтримані претензії не вдаються або виправляються, при цьому спостережний синтаксис і сироватка поведінка несуть висновок.