IT Format danych

JSON

Znany też jako:JavaScript Object Notation

Definicja #

JSON (JavaScript Object Notation) to tekstowy format wymiany danych zdefiniowany przez Douglasa Crockforda na początku lat 2000. Mimo nazwy odwołującej się do JavaScriptu, jest formatem niezależnym od języka — obsługiwanym przez praktycznie wszystkie języki programowania.

Typy danych w JSON:

  • String — tekst w podwójnych cudzysłowach: "hello"
  • Number — liczba całkowita lub zmiennoprzecinkowa: 42, 3.14
  • Booleantrue lub false
  • Nullnull
  • Array — lista wartości: [1, "two", true]
  • Object — mapa klucz-wartość: {"name": "Jan", "age": 30}

JSON wyparł XML jako dominujący format dla REST API ze względu na:

  • Mniejszy rozmiar (brak tagów zamykających)
  • Natywne wsparcie w JavaScript (JSON.parse(), JSON.stringify())
  • Czytelność i prostotę

Standard jest zdefiniowany w RFC 8259 i ECMA-404. Rozszerzenia: JSON Schema (walidacja), JSON-LD (dane linkowane), BSON (binarny JSON używany w MongoDB), NDJSON (JSON Lines — linia po linii).

Zastosowania #

JSON stosuje się do:

  • REST API — przesyłanie danych między klientem (przeglądarka, mobile) a serwerem (format request/response)
  • Pliki konfiguracyjne — package.json (Node.js), appsettings.json (.NET), tsconfig.json, angular.json
  • NoSQL bazy danych — MongoDB przechowuje dokumenty w BSON (binarny JSON)
  • Przechowywanie stanu aplikacji — localStorage w przeglądarkach, pliki stanu Terraform, JSON Web Tokens (JWT)
  • Wymiana danych między mikroserwisami i systemami zewnętrznymi (webhooks, eventy)

Ścieżka nauki #

JSON jest formatem niezbędnym dla każdego programisty — nauka podstaw zajmuje godziny.

Zacznij od:

  • Składnia JSON — obiekty, tablice, typy danych, cudzysłowy
  • Parsowanie i serializacja w wybranym języku: JSON.parse/stringify (JS), json.loads/dumps (Python), JsonSerializer (C#), ObjectMapper (Java)
  • Walidacja JSON — sprawdzanie poprawności składniowej online (jsonlint.com)

Następnie poznaj:

  • JSON Schema — definiowanie i walidacja struktury dokumentu JSON
  • JSONPath — język zapytań do nawigacji po strukturze JSON (analogiczny do XPath)
  • JWT (JSON Web Token) — format tokenów uwierzytelniania oparty na JSON
  • Obsługa dużych plików JSON — streaming parsers, NDJSON (JSON Lines) dla Big Data

FAQ #

Czym JSON różni się od XML?
JSON jest lżejszy i prostszy w odczycie — nie wymaga tagów zamykających. XML jest bardziej rozbudowany (atrybuty, namespace, XSD, XSLT) i dominuje w SOAP i systemach korporacyjnych. JSON jest standardem dla REST API i nowoczesnych aplikacji webowych.
Czy JSON obsługuje komentarze?
Standardowy JSON nie obsługuje komentarzy — to celowa decyzja projektowa. Niektóre narzędzia (VS Code, TypeScript) obsługują JSON with Comments (JSONC) jako rozszerzenie, ale nie jest to część standardu.
Co to jest JWT?
JWT (JSON Web Token) to kompaktowy, bezpieczny format tokena oparty na JSON, stosowany do uwierzytelniania i wymiany informacji. Składa się z trzech części (header.payload.signature) zakodowanych w Base64URL i podpisanych kryptograficznie.
Czy JSON ma wady?
JSON nie obsługuje komentarzy, typów daty/czasu (daty trzeba przechowywać jako string ISO 8601), dużych liczb całkowitych (problem z precyzją float), ani danych binarnych (wymagają Base64). Do zastosowań wymagających tych funkcji używa się BSON, MessagePack lub Protobuf.
Ostatnia aktualizacja:

Powiązane hasła

Technologie i biblioteki, które najczęściej pojawiają się razem z JSON w ogłoszeniach.

Cały słownik IT

Przeglądaj słownik IT alfabetycznie

Wybierz literę, aby zobaczyć wszystkie hasła zaczynające się od niej.