RevealTheme logo

Formater i walidator JSON

Formatuj, upiększaj, waliduj i minifikuj JSON. Działa w całości w Twojej przeglądarce, więc Twoje dane nigdy nie opuszczają Twojego urządzenia.

Jak korzystać z tego narzędzia

  1. 1

    Wklej swój JSON w pole wprowadzania.

  2. 2

    Kliknij Formatuj, aby wyświetlić go czytelnie z wcięciami, lub Minifikuj, aby usunąć białe znaki.

  3. 3

    Błędy wskazują dokładny wiersz i kolumnę, w których analiza się nie powiodła.

  4. 4

    Skopiuj wynik do schowka.

Czym jest JSON i dlaczego jego formatowanie ma znaczenie?

JSON (JavaScript Object Notation) to lingua franca nowoczesnych API internetowych, plików konfiguracyjnych i strukturalnego rejestrowania zdarzeń. Każde API REST i GraphQL zwraca JSON; każdy plik package.json, tsconfig.json i większość konfiguracji CI to JSON; AWS, GCP i Azure posługują się JSON w swoich interfejsach CLI. Siłą JSON jest jego minimalna gramatyka: sześć znaków strukturalnych ({}, [], przecinek, dwukropek, cudzysłowy), cztery typy proste (ciąg znaków, liczba, wartość logiczna i null) oraz rekurencyjne zagnieżdżanie. Ten minimalizm jest również jego wadą: JSON nie obsługuje komentarzy, końcowych przecinków, kluczy bez cudzysłowów ani wielowierszowych ciągów znaków. Pojedynczy źle umieszczony cudzysłów lub przecinek psuje cały dokument. To narzędzie waliduje dane wejściowe zgodnie z RFC 8259 (specyfikacją JSON), a następnie przedstawia je ze spójnymi wcięciami do odczytu lub usuwa wszystkie białe znaki na potrzeby transmisji sieciowej. Parsowanie i formatowanie odbywają się w całości w Twojej przeglądarce za pomocą natywnych funkcji JSON.parse i JSON.stringify silnika JavaScript – tego samego kodu, który działa na serwerach Node.js i we wszystkich przeglądarkach. Oznacza to, że Twoje dane nigdy nie wędrują przez sieć, a zachowanie walidacji tutaj dokładnie odpowiada temu, które zobaczy Twój kod w środowisku produkcyjnym.

Typowe przypadki użycia

  • Debuguj odpowiedzi API, wklejając je do formatera – natychmiast zobacz strukturę, którą ukrywa zminifikowany JSON.

  • Waliduj JSON przed wysłaniem go do rygorystycznego odbiorcy (AWS CloudFormation, manifesty Kubernetes itp.).

  • Wyświetlaj czytelnie logi z bibliotek strukturalnego logowania (Pino, Bunyan), które emitują JSON w jednej linii.

  • Minifikuj pliki konfiguracyjne przed osadzeniem ich w HTML lub zmiennych środowiskowych (mniejsze, mniej bajtów do analizy).

  • Formatuj ładunki tokenów JSON Web Token po zdekodowaniu ich z Base64.

  • Porównaj dwie odpowiedzi API, formatując obie i porównując ich różnice.

Najczęściej zadawane pytania

Czy mój JSON opuszcza przeglądarkę?
Nie. Całe parsowanie i formatowanie odbywa się w Twojej przeglądarce za pomocą wbudowanych funkcji JSON.parse i JSON.stringify. Dane nigdy nie trafiają na serwer ani nie pojawiają się w logach. Można bezpiecznie używać tego narzędzia z odpowiedziami API zawierającymi tokeny, dane klientów lub inne tajne informacje.
Czy mogę formatować JSON5 lub JSONC (z komentarzami)?
Nie – to narzędzie stosuje się do rygorystycznej specyfikacji JSON (RFC 8259). Komentarze i końcowe przecinki to błędy składni i spowodują wyświetlenie komunikatu o błędzie parsera. W przypadku elastycznych wariantów JSON użyj parsera JSON5, takiego jak json5.org, lub przepuść dane wejściowe przez preprocesor, który najpierw usunie komentarze.
Jakiego rozmiaru wcięcia powinienem używać?
2 spacje to konwencja JavaScriptu i sieci oraz najbardziej uniwersalna. 4 spacje to wartość domyślna ekosystemu Pythona (zgodna z wcięciami PEP 8). Tabulatory są reprezentowane niespójnie w różnych edytorach i psują narzędzia do porównywania – unikaj ich, chyba że Twój zespół ma rygorystyczną konwencję stosowania tabulatorów. Wybór jest czysto estetyczny; parserom to nie robi różnicy.
Dlaczego zminifikowany JSON ma znaczenie?
Zminifikowany JSON oszczędza bajty, co jest istotne na dużą skalę (na przykład publiczne API zwracające 100 KB danych na miliony żądań). W przypadku małych plików konfiguracyjnych (rzędu kilku KB) różnica jest znikoma. Czasy parsowania w przeglądarce są identyczne dla sformatowanego i zminifikowanego JSON, więc jedynym powodem minifikacji jest przepustowość.
Jak interpretować komunikaty o błędach?
Komunikaty o błędach funkcji JSON.parse w JavaScripcie zawierają pozycję (przesunięcie od początku), w której parsowanie się nie powiodło. Częste błędy: „Unexpected token” zwykle wskazuje na brakujący cudzysłów lub przecinek albo niewyescapowany znak specjalny. „Unexpected end of JSON input” oznacza, że dokument jest obcięty. „Unexpected non-whitespace character” często wskazuje na końcowy przecinek.
Czy mogę formatować bardzo duże pliki JSON?
Funkcja JSON.parse w przeglądarce obsługuje pliki o rozmiarze do około 100 MB, zanim wydajność stanie się problematyczna. W przypadku większych plików użyj jq w wierszu poleceń – może on strumieniowo przetwarzać dowolnie duże pliki JSON.
Jaka jest różnica między JSON a literałami obiektów JavaScript?
JSON to rygorystyczny podzbiór składni literałów obiektów JavaScript. Różnice: klucze JSON muszą być ciągami znaków w cudzysłowach podwójnych (JS dopuszcza klucze bez cudzysłowów i cudzysłowy pojedyncze); JSON zabrania komentarzy, końcowych przecinków i undefined; JSON nie ma wyrażeń, wywołań funkcji ani wartości obliczanych. JavaScript może bezpiecznie ewaluować JSON; JSON nie może ewaluować dowolnego kodu JavaScript.

Powiązane narzędzia