Co to jest JSON? Składnia, typy danych i najczęstsze błędy
JSON to najpopularniejszy format wymiany danych w internecie. Poznaj jego zasady, zobacz, czym różni się od CSV i XML, i dowiedz się, skąd biorą się błędy „Unexpected token”.
JSON (JavaScript Object Notation) to tekstowy format zapisu danych, czytelny zarówno dla ludzi, jak i programów. Używają go interfejsy API, pliki konfiguracyjne, bazy danych dokumentowych i aplikacje mobilne. Opisuje go standard RFC 8259.
Przykład
{
"nazwa": "Kalkulator procentowy",
"kategoria": "matematyka",
"darmowy": true,
"ocena": 4.8,
"tagi": ["procenty", "rabat"],
"autor": null
}
Typy danych
- obiekt — pary „klucz”: wartość w nawiasach klamrowych
{}, - tablica — lista wartości w nawiasach kwadratowych
[], - tekst — zawsze w cudzysłowach podwójnych,
- liczba — z kropką dziesiętną, bez cudzysłowów (4.8, a nie 4,8),
- true / false oraz null — małymi literami.
Najczęstsze błędy
| Błąd | Źle | Dobrze |
|---|---|---|
| Pojedyncze cudzysłowy | {'a': 1} | {"a": 1} |
| Klucz bez cudzysłowów | {a: 1} | {"a": 1} |
| Przecinek na końcu | [1, 2, ] | [1, 2] |
| Przecinek dziesiętny | {"cena": 9,99} | {"cena": 9.99} |
| Komentarz | // opis | JSON nie ma komentarzy |
| Nieescapowany znak | "C:\dane" | "C:\\dane" |
Komunikat „Unexpected token” w przeglądarce zwykle oznacza jeden z tych błędów albo to, że serwer zwrócił stronę HTML (np. komunikat o błędzie) zamiast JSON.
JSON, CSV czy XML?
- CSV — płaska tabela, idealna do arkuszy kalkulacyjnych. Nie obsługuje zagnieżdżonych danych i nie ma typów (wszystko jest tekstem).
- JSON — zagnieżdżone obiekty i listy, typy danych, zwięzły zapis. Standard w API internetowych.
- XML — bardziej rozbudowany, z atrybutami, przestrzeniami nazw i schematami. Spotkasz go w dokumentach urzędowych (np. JPK, e-faktury), plikach Office i starszych systemach.
Dane z arkusza zamienisz na JSON (i odwrotnie) w konwerterze CSV ⇄ JSON, a dokumenty XML sformatujesz w formatowaniu XML.
Formatowanie i minifikacja
Serwery często wysyłają JSON w jednej linii, bez spacji — tak jest mniejszy. Do czytania lepiej go sformatować z wcięciami. Odwrotna operacja, minifikacja, usuwa zbędne spacje przed wysłaniem lub zapisaniem.
Bezpieczeństwo
Dane z JSON nigdy nie powinny być wykonywane jako kod (dawniej robiono to funkcją eval). Używaj JSON.parse w JavaScript, json_decode w PHP lub json.loads w Pythonie. Nie wklejaj też do obcych serwisów JSON-ów z tokenami dostępu lub danymi klientów.
Sprawdzisz, sformatujesz i zminifikujesz JSON — ze wskazaniem miejsca błędu — w narzędziu formatowanie JSON. Dane są przetwarzane w przeglądarce.
Narzędzia do tego poradnika
JSONAPIformat danychCSVwalidacja