Три режими, одне робоче місце. Форматування, перевірка та порівняння користуються тим самим парсером і тим самим редактором, тож документ поводиться однаково, хоч би який режим його читав, а перемикання між ними ніколи не переформатовує те, що ви вставили.
Що робить кожен режим
| Режим | Що він робить |
|---|
| ФорматуванняПереписує | Відступи двома пробілами, чотирма або табуляцією, зняття пробільних символів назад, чи рекурсивне сортування ключів в обидва боки. Значення, керівні послідовності та Unicode повертаються рівно такими, якими були, а масиви зберігають порядок. |
| ПеревіркаВказує місце | Називає ваду й показує на неї, замість повідомляти, що документ недійсний, і лишати пошук на вас. |
| ПорівнянняПорівнює дані | Два документи зіставлені за тим, що вони означають, з кожною зміною, позначеною як додана, вилучена, змінена або зі зміненим типом. |
Вади локалізуються, а не просто повідомляються
Названо дев'ятнадцять різних причин, кожну з рядком, стовпцем і зсувом у байтах, а сусідні рядки виводяться з дашком під символом. Кома перед закривною дужкою, ключ в апострофах, голе слово, коментар, недійсна керівна послідовність і сирий керуючий символ усередині рядка читаються самі за себе, а не як одна загальна помилка розбору.
Дві вади, які може нести й дійсний документ
Обидві повідомляються для документів, що розбираються чисто, бо обидві тихо змінюють ваші дані. Дубльований ключ уже ніщо не поверне: JSON.parse залишає лише останнє значення, і так само робить кожен інший парсер, який вам трапиться, тож попередження називає ключ і його рядок, щоб можна було виправити джерело. Ціле число понад 2^53 змінює значення тієї миті, коли його читає JavaScript, і саме так 64-бітний ідентифікатор тихо стає іншим ідентифікатором.
Чого порівняння відмовляється називати різницею
Відступи, кінці рядків і порядок, у якому записано ключі об'єкта, не несуть у JSON значення, тож різницями не є. Порядок у масиві значення несе й порівнюється як послідовність, і тому один вставлений елемент читається як одне вставлення, а не так, ніби змінився кожен наступний елемент.
Читати документ, завеликий для прокручування
- Дерево відкривається по одному рівню, тож великий файл не стає великою сторінкою. Кожен рядок несе шлях, що веде до нього, users[4].email, з кнопкою скопіювати шлях або значення.
- Пошук за ключами, за значеннями або за обома, з лічильником збігів і переходом між ними.
- Статистика з'являється, щойно документ розібрано: ключі, об'єкти, масиви, рядки, числа, логічні значення, null, максимальна глибина, розмір і рядки.
- Перетворення у YAML, в інтерфейс TypeScript або в CSV. Коли документ не може бути таблицею, шлях через CSV каже, якої форми він потребував, замість видавати щось оманливе.
Стеля - 5 МіБ. Понад приблизно 300 КіБ кольори синтаксису вимикаються, щоб набирання лишалося плавним, а на дуже великих документах докладне порівняння спиняється раніше й каже про це; перевірка та статистика працюють у всьому діапазоні.
За цією сторінкою немає жодної кінцевої точки API. Документ розбирається в пам'яті браузера й ніколи не потрапляє на сервер, ніщо не записується у сховище чи в адресний рядок, а єдине, що лишається між відвідинами, - обраний відступ.