JSON (JavaScript Object Notation) to lekki, tekstowy format zapisu i wymiany danych. Składnia wzięła się z obiektów JavaScriptu, ale sam format jest niezależny od języka — sparsujesz go w Pythonie, Javie, Go, Rust czy PHP równie dobrze. Dane trzymasz w parach "klucz": wartość, a wartością może być tekst, liczba, wartość logiczna (true/false), null, tablica albo zagnieżdżony obiekt. Standard opisuje RFC 8259 oraz norma ECMA-404.
JSON wygrał z cięższym XML-em, bo jest czytelny dla człowieka i tani dla maszyny. Dziś to domyślny język komunikacji w sieci: gdy front-end pyta API o dane, najczęściej dostaje w odpowiedzi właśnie JSON. Używa go też mnóstwo plików konfiguracyjnych — choćby package.json w projektach Node.js — i bazy NoSQL takie jak MongoDB. Krótko mówiąc, jeśli programujesz cokolwiek związanego z webem, JSON-a spotkasz codziennie.
Jak to wygląda w praktyce
Prosty obiekt opisujący użytkownika:
{ "imie": "Ania", "wiek": 30, "aktywny": true, "jezyki": ["pl", "en"] }
W JavaScripcie zamienisz tekst na obiekt przez JSON.parse(tekst), a obiekt z powrotem na tekst przez JSON.stringify(obiekt). W Pythonie robi to moduł json (json.loads() i json.dumps()). Do oglądania API z terminala świetnie nadaje się curl połączony z jq — np. curl api.example.com/users | jq '.[0].imie' wyciągnie imię pierwszego użytkownika z odpowiedzi.
Częste pułapki
- Klucze tylko w cudzysłowach — i to podwójnych.
{ klucz: 1 }albo{ 'klucz': 1 }to JavaScript, nie JSON. - Brak przecinka na końcu (trailing comma) —
[1, 2, 3,]wywali parser. To klasyk, który wkurza wszystkich. - Brak komentarzy — czysty JSON ich nie obsługuje. Dlatego konfiguracje czasem zapisuje się w JSON5 albo YAML-u.
- Brak typu daty — daty przesyłasz jako tekst, najczęściej w formacie ISO 8601 (
"2026-06-29T10:00:00Z").
Gdy dostajesz błąd parsowania, zwykle winny jest jeden z powyższych drobiazgów — wklej dane do walidatora (np. JSONLint) i znajdziesz literówkę w sekundę.
Pojęcia powiązane: XML, YAML, API REST, JSON Schema (walidacja struktury), serializacja i deserializacja, MongoDB, JSON Web Token (JWT).