Despre acest instrument
Formatarea JSON (deseori numită destul de imprimare sau înfrumusețare) necesită JSON compact și adaugă spații albe — întreruperi de linie, indentare, spațiere consistentă — pentru a face structura vizibilă pentru cititorii umani. Compact JSON este formatul potrivit pentru transmisie: minimizează octeții peste fir și stocarea. JSON formatat este formatul potrivit pentru inspecție: ierarhia indentată dezvăluie structura imbricată dintr-o privire, face diferențele semnificative și permite dezvoltatorilor să localizeze anumite câmpuri fără a analiza mental documentul.
Acest formatator analizează intrarea ca JSON pentru a confirma că este validă, apoi o reemite cu indentare consecventă. Intrarea nevalidă produce o eroare care indică problema de sintaxă. Intrarea validă este reformatată, indiferent de cât de compactă sau dezordonată a fost sursa. Indentarea este implicită la două spații, care corespunde celei mai comune convenții JavaScript.
Formatatorul oferă, de asemenea, minificare (operația inversă), care elimină toate spațiile albe inutile pentru a produce cel mai mic JSON valid. Ieșirea redusă este utilă pentru transmisia producției; ieșirea formatată este utilă pentru dezvoltare și depanare.
De ce să formatați JSON
Citirea JSON profund imbricată fără indentare este în esență imposibilă - structura este prezentă din punct de vedere tehnic, dar invizibilă. Chiar și JSON moderat complex beneficiază enorm de pe urma formatării. Evaluatorii de cod, depanatorii API și oricine încearcă să înțeleagă o încărcare utilă de date au nevoie de JSON formatat pentru a vedea ce este de fapt acolo.
Formatarea prinde și erori. Dacă JSON nu reușește să analizeze în timpul formatării, mesajul de eroare identifică poziția exactă a problemei de sintaxă - deseori o virgulă lipsă, o cheie fără ghilimele sau o virgulă de ultimă oră pe care sistemul de producție nu a semnalat-o. Un formatator este cel mai simplu validator JSON disponibil.
Detalii tehnice
Formatatorul folosește JSON.parse și JSON.stringify, aceeași pereche pe care o livrează fiecare runtime JavaScript. Analiza urmează RFC 8259 (specificația JSON actuală), acceptând JSON strict, dar respingând literalele obiectelor JavaScript, comentariile, virgulele de sfârșit și alte extensii JSON5.
JSON.stringify acceptă un argument de indentare: un număr (spații) sau șir (caracter de indentare personalizat, cum ar fi o tabulatură). Formatatorul expune ambele opțiuni. Ieșirea este sortată în ordinea sursei pentru obiecte (deoarece ES2015 a păstrat ordinea de inserare a proprietăților în toate motoarele majore).
Cazuri marginale: numerele mari dincolo de Number.MAX_SAFE_INTEGER își pierd precizia atunci când sunt analizate (o limitare JSON cunoscută; utilizați valori de șir pentru ID-urile care depășesc 2^53). Escaperile Unicode în șiruri sunt păstrate literal. Spațiile albe din urmă sunt îndepărtate de pe fiecare linie.
Întrebări frecvente
- Ce tipuri de erori JSON detectează acest instrument?
- Instrumentul detectează virgule lipsă, paranteze/acolade nepotrivite, evadarea șirurilor nevalide, virgulele finale, șirurile cu ghilimele simple și alte încălcări ale sintaxei conform specificației RFC 8259 JSON.
- Poate gestiona fișiere JSON foarte mari?
- Da. Formatatorul procesează JSON în browser utilizând analiza nativă JavaScript, astfel încât gestionează eficient fișierele de până la câțiva megaocteți. Pentru fișierele extrem de mari (50 MB+), timpul de procesare depinde de dispozitivul dvs.
- Acceptă JSON cu comentarii (JSONC)?
- JSON standard nu permite comentarii. Dacă intrarea dvs. conține comentarii, validatorul le va semnala ca erori. Pentru suport JSONC, eliminați comentariile înainte de formatare.
- Formatarea îmi va schimba valorile datelor?
- Nu. Formatarea ajustează doar spațiile albe și indentarea — tipurile de date, valorile și structura dvs. rămân exact aceleași.
- Sunt acceptate funcțiile JSON5 (comentarii, virgule în urmă)?
- Nu. Formatatorul urmează strict RFC 8259. Caracteristicile JSON5 cauzează erori de analizare. Pentru a lucra cu JSON5, convertiți mai întâi în JSON standard folosind un parser JSON5.
- JSON-ul meu este încărcat pe un server?
- Nu. Analiza și formatarea au loc în întregime în browser-ul dvs. folosind funcții JSON încorporate.
- Numerele mari își vor pierde precizia?
- JavaScript reprezintă numerele ca flotanți pe 64 de biți, astfel încât numerele întregi de peste 2^53 (aproximativ 9 cvadrilioane) își pierd precizia. Pentru ID-uri sau alte valori întregi mari, stocați-le ca șiruri de caractere în JSON.
- Pot sorta cheile în ordine alfabetică?
- JSON.stringify nu sortează cheile. Utilizați un pas de sortare separat (sau un formatator cu suport pentru sortare) pentru a alfabetiza cheile înainte de a le înșira.