Jak sprawdzić poprawność JSON
- Wklej JSON lub otwórz plik. Walidacja uruchamia się automatycznie podczas pisania.
- Zielony komunikat „Poprawny JSON” ze statystykami oznacza, że dokument jest poprawny. W przeciwnym razie przeczytaj komunikat błędu: wskazuje wiersz, kolumnę i to, czego spodziewano się w tym miejscu.
- Popraw podświetlony wiersz lub kliknij Napraw, a następnie Formatuj, aby wynik był czytelny.
Najczęstsze błędy w JSON i jak je naprawić
| Błąd | Przykład | Rozwiązanie |
|---|---|---|
| Końcowy przecinek | [1, 2, ] | Usuń przecinek przed ] lub } |
| Apostrofy zamiast cudzysłowów | {'name': 'Ada'} | Użyj podwójnych cudzysłowów: {"name": "Ada"} |
| Klucz bez cudzysłowów | {name: "Ada"} | Ujmij klucz w cudzysłowy: {"name": "Ada"} |
| Brak przecinka | {"a": 1 "b": 2} | Dodaj przecinek między właściwościami |
| Komentarz | // settings | JSON nie obsługuje komentarzy – usuń je |
| Podział wiersza w ciągu znaków | "line 1⏎line 2" | Zamiast prawdziwego podziału wiersza wpisz \n |
| Nieprawidłowa wartość | undefined, NaN, True | Użyj null, liczby, true lub false |
| Zero wiodące | {"zip": 01234} | Wpisz 1234 lub zachowaj wartość jako tekst: "01234" |
| Brakujący nawias | {"a": [1, 2} | Zamknij każdy [ nawiasem ], a każdy { nawiasem } |
Kiedy JSON jest poprawny
Format JSON jest zdefiniowany w RFC 8259. Poprawny dokument spełnia kilka ścisłych reguł:
- Zawiera dokładnie jedną wartość najwyższego poziomu, zwykle obiekt
{}lub tablicę[]. - Elementy obiektu to pary
"key": valuerozdzielone przecinkami; klucze są zawsze ciągami znaków w podwójnych cudzysłowach. - Ciągi znaków używają podwójnych cudzysłowów; wewnątrz nich dozwolone są tylko sekwencje
\" \\ \/ \b \f \n \r \ti\uXXXX. - Liczby są dziesiętne: bez zer wiodących, bez znaku
+, bez zapisu szesnastkowego, bezNaNiInfinity. true,falseinullzapisuje się małymi literami.- Spacje, tabulatory i podziały wierszy są dozwolone między tokenami, ale komentarze – nie.
Walidacja JSON w wierszu poleceń
- Python:
python -m json.tool file.jsonwyświetla wiersz i kolumnę pierwszego błędu. - jq:
jq empty file.jsonkończy działanie z komunikatem błędu, jeśli plik jest niepoprawny. - Node.js:
node -e "JSON.parse(require('fs').readFileSync('file.json', 'utf8'))"
Najczęściej zadawane pytania
Czym różni się walidator JSON od lintera JSON?
Walidator sprawdza, czy tekst jest zgodny ze składnią JSON. Linter zwykle dodatkowo wymusza spójny styl. Ten walidator sprawdza JSON ściśle według RFC 8259, a w połączeniu z funkcją „Formatuj” zapewnia też spójne wcięcia.
Czy można walidować JSON względem JSON Schema?
Ta strona sprawdza składnię. Aby opisać oczekiwaną strukturę danych, utwórz schemat z przykładowego dokumentu za pomocą naszego generatora JSON Schema.
Dlaczego mój JSON jest tu poprawny, ale inny program go odrzuca?
Programy często oczekują określonej struktury (konkretnych kluczy lub typów), konkretnego kodowania, np. UTF-8 bez znacznika BOM, albo liczb z ograniczonego zakresu. Składniowo poprawny JSON może mimo to naruszać takie reguły aplikacji.
Czy JSON z komentarzami (JSONC) jest poprawny?
Nie. Standardowy JSON nie dopuszcza komentarzy. Niektóre edytory akceptują je w plikach ustawień (JSONC), ale API i JSON.parse już nie. Funkcja „Napraw” usunie komentarze za Ciebie.