За този инструмент
Форматирането на JSON (често наричано красиво отпечатване или разкрасяване) взема компактен JSON и добавя празни интервали — прекъсвания на редове, отстъпи, последователни интервали — за да направи структурата видима за читателите. Компактният JSON е правилният формат за предаване: той минимизира байтовете по кабела и съхранението. Форматираният JSON е правилният формат за проверка: йерархията с отстъп разкрива вложена структура с един поглед, прави разликите значими и позволява на разработчиците да локализират конкретни полета, без да анализират документа наум.
Този форматиращ инструмент анализира входа като JSON, за да потвърди, че е валиден, след което го изпраща отново с последователен отстъп. Невалидният вход води до грешка, сочеща към синтактичния проблем. Валидният вход се преформатира, независимо колко компактен или разхвърлян е източникът. Отстъпът по подразбиране е два интервала, съответстващи на най-разпространената конвенция на JavaScript.
Форматиращият също предлага минимизиране (обратната операция), което премахва всички ненужни празни пространства, за да произведе най-малкия валиден JSON. Минимизираната продукция е полезна за предаване на продукцията; форматираният изход е полезен за разработка и отстраняване на грешки.
Защо да форматирате JSON
Четенето на дълбоко вложен JSON без отстъп е по същество невъзможно - структурата е технически налична, но невидима. Дори умерено сложен JSON има огромна полза от форматирането. Рецензентите на кода, програмите за отстраняване на грешки в API и всеки, който се опитва да разбере полезен товар от данни, се нуждае от форматиран JSON, за да види какво всъщност има там.
Форматирането също улавя грешки. Ако JSON не успее да анализира по време на форматиране, съобщението за грешка идентифицира точната позиция на синтактичния проблем - често липсваща запетая, ключ без кавички или заблудена запетая в края, която създаващата система не е маркирала. Форматиращият инструмент е най-простият наличен JSON валидатор.
Технически подробности
Форматиращият използва JSON.parse и JSON.stringify, една и съща двойка, доставяна от всяко време за изпълнение на JavaScript. Анализът следва RFC 8259 (текущата JSON спецификация), като приема строг JSON, но отхвърля JavaScript обектни литерали, коментари, завършващи запетаи и други JSON5 разширения.
JSON.stringify приема аргумент за отстъп: число (интервали) или низ (персонализиран знак за отстъп, като табулация). Форматиращият излага и двете опции. Изходът е сортиран в реда на източника за обекти (тъй като ES2015 запазва реда за вмъкване на свойства във всички основни машини).
Крайни случаи: големи числа над Number.MAX_SAFE_INTEGER губят прецизност, когато се анализират (известно JSON ограничение; използвайте низови стойности за идентификатори, които надвишават 2^53). Екранирането на Unicode в низовете се запазва буквално. Завършващият интервал се премахва от всеки ред.
Често задавани въпроси
- Какви типове JSON грешки открива този инструмент?
- Инструментът открива липсващи запетаи, несъответстващи скоби/скоби, невалидно екраниране на низове, завършващи запетаи, низове в единични кавички и други нарушения на синтаксиса съгласно спецификацията RFC 8259 JSON.
- Може ли да обработва много големи JSON файлове?
- да Форматиращият обработва JSON във вашия браузър, като използва естествен анализ на JavaScript, така че обработва файлове до няколко мегабайта ефективно. За изключително големи файлове (50MB+) времето за обработка зависи от вашето устройство.
- Поддържа ли JSON с коментари (JSONC)?
- Стандартният JSON не позволява коментари. Ако вашето въвеждане съдържа коментари, валидаторът ще ги маркира като грешки. За поддръжка на JSONC премахнете коментарите преди форматиране.
- Ще промени ли форматирането стойностите на данните ми?
- Не. Форматирането коригира само празното пространство и отстъпа — вашите типове данни, стойности и структура остават абсолютно същите.
- Поддържат ли се JSON5 функции (коментари, запетая в края)?
- Не. Форматът следва стриктно RFC 8259. Функциите на JSON5 причиняват грешки при анализ. За да работите с JSON5, първо преобразувайте в стандартен JSON, като използвате анализатор на JSON5.
- Моят JSON качен ли е на сървър?
- Не. Анализът и форматирането се извършват изцяло във вашия браузър с помощта на вградени JSON функции.
- Големите числа ще загубят ли точност?
- JavaScript представя числа като 64-битови плаващи числа, така че числата над 2^53 (около 9 квадрилиона) губят прецизност. За идентификатори или други големи цели числа ги съхранявайте като низове в JSON.
- Мога ли да сортирам ключовете по азбучен ред?
- JSON.stringify не сортира ключове. Използвайте отделна стъпка за сортиране (или програма за форматиране с поддръжка на сортиране), за да подредите ключовете по азбучен ред преди стрингифициране.