Przejdź do treści

Co to jest JSON? Składnia, typy danych i najczęstsze błędy

Redakcja AMKBIT · · 2 min czytania

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ŹleDobrze
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// opisJSON 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

Przeczytaj też