Formatare JSON
Lipește JSON și este reformatat sau strâns pe un singur rând.
Rezultat
Lipește JSON în câmpul de mai sus.
Cum funcționează
JSON este un format de text pentru date structurate, construit din obiecte cu câmpuri denumite, liste, șiruri, numere, true, false și null.
Formatarea schimbă doar spațiile. Datele sunt identice înainte și după, așa că poți reformata fără grijă un fișier înainte să-l citești.
Comprimarea elimină toate spațiile și trecerile la rând nou inutile, ceea ce taie de obicei douăzeci până la treizeci la sută dintr-un JSON indentat.
Când textul nu poate fi analizat, mesajul vine de la analizorul browserului și numește de obicei caracterul neașteptat. Cele mai frecvente cauze sunt o virgulă rămasă înaintea unei acolade de închidere și ghilimelele de tip greșit.
Comentariile nu sunt permise în JSON, iar numele câmpurilor trebuie scrise între ghilimele duble drepte. Aceasta este cea mai frecventă diferență față de felul în care se scriu obiectele în JavaScript.
Cum formatează instrumentul
Instrumentul face două lucruri, unul după altul. Mai întâi textul trece prin JSON.parse din browser, dar numai ca să se verifice că este valid. Reformatarea parcurge apoi propriul tău text caracter cu caracter: spațiile albe din afara șirurilor sunt eliminate, iar treceri la rând nou și indentări de două sau patru spații sunt adăugate după acolade, paranteze drepte și virgule. Obiectele și listele goale sunt scrise strâns. Șirurile sunt copiate neatinse, inclusiv secvențele escape. Comprimarea este aceeași trecere, fără treceri la rând nou și fără indentări.
Numerele rămân cum au fost scrise
Citirea unui JSON în JavaScript și scrierea lui înapoi poate schimba numerele, pentru că JavaScript are un singur tip de număr, cu precizie limitată. Încercat cu codul instrumentului, întregul 12345678901234567890 devine 12345678901234567000, numărul 1.0 devine 1, iar 1e400 devine null. În instrument toate trei rămân exact cum au fost scrise. RFC 8259 consideră sigure între sisteme doar întregii până la 2⁵³ − 1, adică 9.007.199.254.740.991, iar I-JSON (RFC 7493) recomandă ca numerele exacte mai mari să fie trimise ca șiruri.
Nume duplicate
Un obiect cu același nume de două ori trece verificarea. RFC 8259 spune doar că numele ar trebui să fie unice și că ce face destinatarul cu duplicatele este imprevizibil; multe analizoare păstrează doar ultima valoare. Instrumentul le păstrează pe amândouă, așa că duplicatul se vede în rezultat. Un drum dus-întors prin JavaScript ar fi eliminat pe tăcute prima valoare. I-JSON interzice de-a dreptul duplicatele.
Erori frecvente
Un tab sau o trecere la rând nou în interiorul unui șir face textul nevalid, pentru că RFC 8259 cere ca toate caracterele de control U+0000–U+001F să fie scrise cu escape, de exemplu \t pentru tab. Se întâmplă ușor când textul este lipit dintr-o foaie de calcul. NaN și Infinity, care există în JavaScript, dar nu în JSON, sunt și ele respinse, la fel ca un marcaj de ordine a octeților (BOM) la început, deși RFC 8259 permite analizoarelor să-l ignore.