UTILS.
100% у браузері
{ }

JS-об'єкт у строгий JSON

Відремонтуйте нестрогий літерал JavaScript-об'єкта — ключі без лапок, одинарні лапки, кінцеві коми, коментарі — у строгий коректний JSON, без eval.

— результат з’явиться тут —

Про цей інструмент

Інструмент JS-об'єкт у строгий JSON ремонтує нестрогий літерал JavaScript- чи JSON5-об'єкта у строгий, коректний JSON. Він побудований на власноруч написаному токенізаторі — він ніколи не використовує eval чи new Function — тож він безпечний за строгої політики безпеки контенту (CSP) і безпечний для вставлення недовіреного тексту. Усе працює у вашому браузері.

Він приймає те, що справжній JSON відхиляє: ключі-ідентифікатори без лапок, рядки в одинарних лапках, кінцеві коми перед ] чи }, коментарі // рядкові та /* блокові */, шістнадцяткові (0xFF), вісімкові та двійкові літерали, числа з провідним плюсом і провідною крапкою (+1, .5), а також значення undefined, NaN та Infinity. Ключі повторно беруться в подвійні лапки, рядки коректно повторно екрануються, коментарі та кінцеві коми прибираються, а числа нормалізуються до звичайних чисел JSON. Ви обираєте, як трактувати undefined (перетворити на null чи прибрати ключ) і нескінченні числа (перетворити на null чи викликати помилку), потім значення повторно серіалізується за допомогою JSON.stringify з обраним вами відступом — 2 пробіли, 4 пробіли, табуляція чи мініфіковано.

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

Поширені запитання

Який нестрогий синтаксис він приймає?
Ключі без лапок, рядки в одинарних лапках, кінцеві коми, коментарі // і /* */, шістнадцяткові/вісімкові/двійкові числа, числа з провідним плюсом і провідною крапкою, а також літерали undefined, NaN та Infinity — поширені речі, що роблять скопійовані JS-об'єкти некоректними як JSON.
Чи використовує він eval для розбору?
Ні. Він використовує власноруч написаний токенізатор і парсер рекурсивного спуску, ніколи eval чи new Function, тож він працює за строгої політики безпеки контенту і безпечний для недовіреного вводу. Він лише виробляє дані, ніколи не виконує код.
Як обробляються undefined, NaN та Infinity?
У JSON немає таких значень. Ви обираєте: undefined може стати null чи мати прибраний ключ, а NaN/Infinity можуть стати null чи викликати помилку. Це в будь-якому разі зберігає вивід строго коректним JSON.
Що відбувається, коли ввід некоректний?
Парсер зупиняється на першій справжній синтаксичній помилці й повідомляє про неї з рядком і стовпцем, де вона сталася, тож ви можете знайти й виправити символ-порушник, а не гадати.

Більше інструментів