Salt la conținut
Quaestio

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.
Încorporează

Încorporează instrumentul pe site-ul tău

Copiază codul și lipește-l acolo unde vrei să apară instrumentul, de exemplu într-un articol de blog sau pe pagina unei școli. Este gratuit, caseta nu are reclame, iar instrumentul calculează în browserul vizitatorului.

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.

Surse

Cum sunt verificate instrumentele