Najczęstsze błędy składniowe JSON i ich naprawa: przewodnik po standardzie RFC 8259
Spis treści
1. Standard RFC 8259 i rygor składniowy JSON
Format JSON (JavaScript Object Notation) jest powszechnym standardem wymiany danych w architekturach REST API, bazach NoSQL i plikach konfiguracyjnych. Pomimo że składnia wywodzi się bezpośrednio z literałów obiektowych języka JavaScript, oficjalna specyfikacja IETF RFC 8259 jest znacznie bardziej restrykcyjna.
Błędy parsowania (takie jak niesławne SyntaxError: Unexpected token w środowiskach Node.js czy Python) są jedną z najczęstszych przyczyn awarii w pipeline'ach CI/CD oraz integracjach webhooków.
2. Pięć najczęstszych błędów niszczących parsery JSON
-
Zbędne przecinki na końcu list i obiektów (Trailing Commas):
W przeciwieństwie do nowoczesnego JavaScriptu czy Pythona, standard RFC 8259 zabrania umieszczania przecinka po ostatnim elemencie tablicy lub właściwości obiektu.
// BŁĄD: { "status": 200, "message": "OK", } // POPRAWNIE: { "status": 200, "message": "OK" } -
Pojedyncze cudzysłowy zamiast podwójnych:
Wszystkie nazwy kluczy oraz wartości tekstowe w JSON muszą być otoczone podwójnymi cudzysłowami (
"). Pojedyncze apostrofy (') są niedozwolone.// BŁĄD: { 'userId': '12345' } // POPRAWNIE: { "userId": "12345" } -
Niepoprawne znaki ucieczki w ścieżkach i tekście:
Ukośnik wsteczny (
\) służy do oznaczania sekwencji specjalnych. Ścieżki systemowe w Windows lub wyrażenia regularne wymagają podwójnego ukośnika (\\). -
Niedozwolone wartości specjalne (NaN, Infinity, wartości niezdefiniowane):
Format JSON nie obsługuje wartości
NaN,Infinityani wartości niezdefiniowanych. Wartości puste muszą być jawnie reprezentowane jakonull. -
Wiodące zera w liczbach:
Zgodnie ze specyfikacją liczba nie może zaczynać się od zera (np.
054jest błędem składniowym; prawidłowy zapis to54lub ciąg tekstowy"054").
3. Bezpieczne formatowanie i walidacja po stronie klienta
Edytor i walidator JSON GoToolstack przeprowadza natychmiastową analizę leksykalną wprowadzonego tekstu bezpośrednio w silniku V8 Twojej przeglądarki. W przypadku wykrycia błędu narzędzie precyzyjnie wskazuje numer linii oraz kolumny, w której wystąpił problem, umożliwiając naprawę jednym kliknięciem.