Formatowanie JSON
Wklej JSON, a zostanie sformatowany albo ściśnięty do jednego wiersza.
Wynik
Wklej JSON w polu powyżej.
Jak to działa
JSON to tekstowy format danych strukturalnych, złożony z obiektów z nazwanymi polami, tablic, łańcuchów znaków, liczb oraz wartości true, false i null.
Formatowanie zmienia tylko białe znaki. Dane są identyczne przed i po, więc możesz bezpiecznie sformatować plik przed czytaniem.
Minifikacja usuwa wszystkie zbędne spacje i znaki nowego wiersza, co zwykle zmniejsza JSON z wcięciami o dwadzieścia do trzydziestu procent.
Gdy tekstu nie da się sparsować, komunikat pochodzi z parsera przeglądarki i zwykle wskazuje nieoczekiwany znak. Najczęstsze przyczyny to przecinek przed nawiasem zamykającym i niewłaściwy rodzaj cudzysłowu.
W JSON nie wolno umieszczać komentarzy, a nazwy pól muszą być w prostych cudzysłowach podwójnych. To najczęstsza różnica względem zapisu obiektów w JavaScripcie.
Jak formatuje narzędzie
Narzędzie robi dwie rzeczy po kolei. Najpierw tekst trafia do funkcji przeglądarki JSON.parse, ale tylko po to, żeby sprawdzić, czy jest poprawny. Samo formatowanie przechodzi potem przez twój tekst znak po znaku: usuwa białe znaki poza łańcuchami i dodaje znaki nowego wiersza oraz wcięcia z dwóch albo czterech spacji po nawiasach klamrowych i kwadratowych oraz po przecinkach. Puste obiekty i tablice są zapisywane bez odstępu w środku. Łańcuchy znaków są przepisywane bez zmian, razem z sekwencjami ucieczki. Minifikacja to to samo przejście, tylko bez znaków nowego wiersza i wcięć.
Liczby zostają takie, jak je zapisano
Wczytanie JSON do JavaScriptu i ponowny zapis mogą zmienić liczby, bo JavaScript ma jeden typ liczbowy o ograniczonej precyzji. Sprawdzone kodem narzędzia: liczba całkowita 12345678901234567890 zmienia się w 12345678901234567000, liczba 1.0 w 1, a 1e400 w null. W narzędziu wszystkie trzy zostają dokładnie takie, jak je zapisano. RFC 8259 uznaje za bezpieczne między systemami tylko liczby całkowite do 2⁵³ − 1, czyli 9 007 199 254 740 991, a I-JSON (RFC 7493) zaleca, by większe liczby, które muszą być dokładne, przesyłać jako łańcuchy znaków.
Powtórzone nazwy
Obiekt, w którym ta sama nazwa występuje dwa razy, przechodzi sprawdzenie. RFC 8259 mówi tylko, że nazwy powinny być unikatowe, a to, co odbiorca zrobi z powtórzeniami, jest nieprzewidywalne; wiele parserów zachowuje tylko ostatnią wartość. Narzędzie zachowuje obie, więc powtórzenie widać w wyniku. Przejście przez JavaScript po cichu usunęłoby pierwszą wartość. I-JSON w ogóle zabrania powtórzeń.
Częste błędy
Tabulator albo znak nowego wiersza wewnątrz łańcucha znaków sprawia, że tekst jest niepoprawny, bo RFC 8259 wymaga, by znaki sterujące U+0000–U+001F były zapisane jako sekwencje ucieczki, np. \t dla tabulatora. Łatwo o to, gdy tekst jest wklejany z arkusza kalkulacyjnego. Odrzucane są też NaN i Infinity, które istnieją w JavaScripcie, ale nie w JSON, oraz znacznik kolejności bajtów (BOM) na początku tekstu, choć RFC 8259 pozwala parserom go pomijać.