Formatowanie JSON i Walidator - Błąd z Numerem Linii

    Formatowanie JSON z wcięciem 2 lub 4 spacji albo tabulatorem, minifikacja i walidacja wg RFC 8259 z numerem linii, kolumny i fragmentem tekstu w miejscu błędu.

    Parametry

    Wprowadź dane do obliczeń

    Co zrobić z JSON

    0 / 20000 znaków

    Do 20 000 znaków

    Postęp wypełniania0 / 1 pól

    💡 Wypełnij wszystkie wymagane pola, aby odblokować przycisk obliczania

    Formatowanie JSON online z walidacją i wskazaniem błędu

    Odpowiedź API w jednej linii na 81 znaków po sformatowaniu z wcięciem 2 spacji zajmuje 12 czytelnych linii, a w drugą stronę minifikacja tego samego obiektu skraca go o 44,5 %. Narzędzie formatuje, minifikuje albo tylko sprawdza JSON według RFC 8259 i przy błędzie podaje linię, kolumnę i fragment tekstu ze strzałką w miejscu problemu. Liczby przepisuje znak w znak, więc 1.50 nie zmieni się w 1.5, a długi identyfikator nie straci końcowych cyfr.

    Szybki start: wybierz „Formatuj”, wklej JSON i przelicz. Jeśli zamiast wyniku pojawi się komunikat, przeczytaj fragment ze strzałką ▶. Typowe przyczyny to przecinek po ostatnim elemencie, apostrof zamiast cudzysłowu i komentarz skopiowany z pliku konfiguracyjnego.

    Jak sformatować i sprawdzić JSON - krok po kroku

    1. Tryb - „Formatuj” dodaje wcięcia i nowe linie, „Minifikuj” usuwa wszystkie zbędne spacje, „Tylko sprawdź” mówi, czy JSON jest poprawny, i liczy klucze bez wypisywania wyniku.
    2. JSON - wklej tekst, do 20 000 znaków.
    3. Wcięcie - 2 spacje, 4 spacje albo tabulator. Pole pojawia się tylko przy formatowaniu.
    4. Sortowanie kluczy - „tak” układa klucze w każdym obiekcie alfabetycznie, co ułatwia porównanie dwóch plików w narzędziu diff. Kolejność elementów tablic zostaje bez zmian.
    5. Odczytaj wynik - kliknij w kod, zaznaczy się cały. Kafelki pokazują typ na górze, liczbę kluczy i elementów tablic, liczbę poziomów i zmianę rozmiaru w bajtach.

    Osiem sytuacji z życia programisty

    Przykład 1: odpowiedź API w jednej linii

    Sytuacja: formatuj {"zamowienie":{"id":2481,"pozycje":[{"sku":"A4-500","ilosc":5}],"oplacone":true}}
    Wynik: 12 linii, 6 kluczy, 4 poziomy zagnieżdżenia (obiekt, obiekt, tablica, obiekt), 81 → 146 bajtów.
    Liczba poziomów to szybki sposób, żeby sprawdzić, czy ścieżka w kodzie typu dane.zamowienie.pozycje[0].sku ma sens.

    Przykład 2: minifikacja przed wysłaniem

    Sytuacja: minifikuj ten sam obiekt zapisany z wcięciami (146 bajtów)
    Wynik: 81 bajtów, czyli -44,5 %.
    Przy małych obiektach wcięcia potrafią zajmować więcej miejsca niż dane. Treść nie zmienia się nawet o jeden znak.

    Przykład 3: przecinek po ostatnim kluczu

    Sytuacja: plik konfiguracyjny kończący się "port": 5432, i nawiasem } w kolejnej linii
    Wynik: „Niepoprawny JSON (linia 3, kolumna 15): Przecinek przed nawiasem „}”... Fragment: "port": 5432 ▶,”
    Narzędzie wskazuje sam przecinek, a nie nawias, przy którym parser się zatrzymał. Usuń przecinek i gotowe.

    Przykład 4: słownik z Pythona wklejony jako JSON

    Sytuacja: {'imie': 'Anna'}
    Wynik: błąd w linii 1, kolumnie 2: „Klucz w apostrofach. W JSON klucz musi być w podwójnych cudzysłowach”.
    print() w Pythonie wypisuje słownik z apostrofami. Prawdziwy JSON daje json.dumps().

    Przykład 5: komentarz w pliku ustawień

    Sytuacja: linia // port bazy nad kluczem "port"
    Wynik: błąd w linii 2, kolumnie 3: „Komentarz w JSON. Standard JSON nie dopuszcza komentarzy”.
    Część edytorów przyjmuje komentarze w swoich plikach ustawień, ale to już nie jest czysty JSON i inne programy go odrzucą.

    Przykład 6: porównanie dwóch wersji pliku

    Sytuacja: formatuj z sortowaniem {"wersja":"1.0","nazwa":"app","zaleznosci":{"react":"18.3.1","axios":"1.7.2"}}
    Wynik: kolejność kluczy nazwa, wersja, zaleznosci, a w środku axios przed react.
    Po posortowaniu obu plików różnice w diff pokazują tylko zmienione wartości, a nie przestawione klucze.

    Przykład 7: powtórzony klucz i duża liczba

    Sytuacja: sprawdź {"id":9007199254740993,"id":1}
    Wynik: „Poprawny JSON” z dwiema uwagami: klucz id powtórzony (linia 1, kolumna 24) oraz liczba większa niż 2^53 - 1.
    JSON.parse w JavaScript zostawi tylko ostatnią wartość, czyli 1, a pierwsza liczba i tak zostałaby zaokrąglona do 9007199254740992.

    Przykład 8: dwa obiekty sklejone z logu

    Sytuacja: {"a":1} {"b":2}, czyli dwie linie z pliku w formacie „jeden JSON na linię”
    Wynik: błąd w linii 1, kolumnie 9: „Po zakończonym JSON zaczyna się kolejny obiekt”.
    Sformatuj każdą linię osobno albo ujmij obiekty w tablicę: [{"a":1}, {"b":2}].

    Najczęstsze błędy w JSON i ich poprawki

    Tabela zbiera konstrukcje, które JavaScript albo Python przyjmują w kodzie, a standard JSON odrzuca. Druga kolumna to początek komunikatu z tego narzędzia.

    Błędnie Komunikat Poprawnie
    [1,2,]Przecinek przed nawiasem „]”[1,2]
    {imie:"A"}Klucz bez cudzysłowu{"imie":"A"}
    {"a":True}Nieoczekiwany znak „T”{"a":true}
    [NaN], {"a":undefined}Wartość NaN nie istnieje w JSON[null]
    [007], [.5]Liczba z zerem na początku / od „.”["007"], [0.5]
    {"p":"C:\dane"}Niedozwolona sekwencja \d{"p":"C:\\dane"}
    Enter w środku tekstuNowa linia wewnątrz tekstu w cudzysłowach"linia 1\nlinia 2"
    {"a" 1}Po kluczu "a" brakuje dwukropka{"a": 1}

    Pytania o formatowanie i walidację JSON

    Czy formatowanie może zmienić dane?
    Nie. Zmieniają się tylko spacje i nowe linie między elementami. Teksty, liczby i kolejność kluczy zostają jak w oryginale, chyba że włączysz sortowanie. Ukośnik zapisany jako \/ wychodzi jako /, bo to ten sam znak.
    Dlaczego mój JSON działa w przeglądarce, a tu jest błąd?
    Najczęściej wklejasz obiekt z kodu JavaScript, a nie JSON. Kod pozwala na klucze bez cudzysłowów, apostrofy i przecinek na końcu, JSON nie. Sprawdź to samo przez JSON.parse() w konsoli: odrzuci te same konstrukcje.
    Czy powtórzony klucz to błąd?
    Składniowo nie, ale RFC 8259 zaleca unikalne nazwy w obiekcie i ostrzega, że zachowanie programów jest wtedy nieprzewidywalne. JavaScript i Python biorą ostatnią wartość. Narzędzie zachowuje oba wpisy i pokazuje, gdzie stoi powtórzenie.
    Jak sortowane są klucze z polskimi literami?
    Według kodów znaków Unicode, tak jak jq -S i sort_keys w Pythonie: wielkie litery przed małymi, a ą czy ż po z. To nie jest kolejność ze słownika, ale daje identyczny wynik w każdym narzędziu.
    Czy mogę sformatować JSON z tokenem albo danymi klientów?
    Lepiej nie. Tekst jest przetwarzany na serwerze i trafia do dziennika obliczeń. Dane poufne sformatuj lokalnie, np. python -m json.tool plik.json albo w edytorze kodu.
    Ile poziomów zagnieżdżenia obsługuje walidator?
    Do 200. Poziomy liczone są po obiektach i tablicach: {"a":[1]} ma 2 poziomy, a sama liczba 42 ma 0.

    Powiązane narzędzia

    Konwerter JSON na XML

    Sprawdzony JSON zamieniony na XML i z powrotem - Zobacz generator

    Generator Danych Testowych

    Gotowa tablica JSON z fikcyjnymi osobami do testów - Zobacz generator

    Kodowanie Base64

    Odczyt nagłówka i treści tokenu JWT, które są JSON-em w Base64 - Zobacz generator

    Generator SHA-256

    Skrót zminifikowanego JSON, np. do podpisu HMAC treści zapytania - Zobacz generator

    Generator UUID/GUID

    Identyfikatory do pól id w przykładowym JSON - Zobacz generator

    Generator zweryfikowany przez zespół LiczGrupa.pl

    Treść, wzory i wyniki zostały sprawdzone pod kątem poprawności i aktualności przez nasz zespół specjalistów.

    Krystian Szyszka

    Sprawdził: Krystian Szyszka