JSON to format przechowywania i przesyłania danych, który wywodzi się ze sposobu zapisu obiektów w JavaScript, ale charakteryzuje się uniwersalnością i kompatybilnością z innymi językami programowania. Czytelna i lekka składnia sprawia, że JSON ma zastosowanie przede wszystkim w aplikacjach webowych i mobilnych, ponieważ sprzyja ich szybkiemu, wydajnemu działaniu.
Co to jest JSON?
JSON (Java Script Object Notation) to lekki format tekstowy, który ułatwia i przyspiesza wymianę danych np. między serwerem a stroną WWW. Składnia JSON jest obsługiwana przez różne języki programowania, a jej związek z JavaScript dotyczy wyłącznie zbliżonego sposobu zapisu obiektów. Pierwszym głównym celem JSON było uproszczenie komunikacji między frontendem a backendem.
JSON został opisany przez Douglasa Crockforda w 2001 roku (chociaż był używany już od lat 90. XX wieku) i ustandaryzowany w specyfikacji ECMA–404 w 2013 roku. Druga edycja standardu ECMA-404 została wydana w grudniu 2017 roku. Inne dokumenty ze specyfikacją definiującą poprawną składnię JSON to zbiór RFC 4627 oraz norma ISO/IEC 21778:2017.
Jakie są główne cechy formatu JSON?
Elastyczny format JSON wyróżnia się łatwą interpretacją danych. Czytelna składnia jest łatwiejsza do zrozumienia przez użytkowników w porównaniu z formatami XML czy CSV. Co więcej, sprzyja szybkiej wymianie danych i wyższej wydajności usług cyfrowych, dzięki czemu ma zastosowanie przede wszystkim w budowie aplikacji sieciowych i mobilnych.
Jak działa JSON?
Jakie typy danych obsługuje JSON?
Typy danych obsługiwane przez JSON to:
- string (łańcuch tekstowy) – ciągi znaków wstawione w podwójny (nie pojedynczy!) cudzysłów, przy czym znaki specjalne w łańcuchu, w tym cudzysłowy, muszą być poprzedzone znakiem backslash (/),
- number (liczba) – nie obejmuje się ich cudzysłowami, chyba że mają stanowić ciąg znaków. Co istotne, zapis liczb ułamkowych wymaga użycia kropki, a nie przecinka,
- boolean (wartość logiczna) – odpowiada prawdzie (true) lub fałszowi (false). Podobnie jak liczby, nie są ujmowane w cudzysłowy,
- null (pusty literał) – wskazuje, że wartość nie została ustalona. Również nie ujmuje się jej w cudzysłów,
- array (tablica) – zawiera różne typy wartości w nawiasie kwadratowym. Tablice mogą zawierać obiekty oraz inne tablice,
- object (obiekt) – to złożona struktura z wartościami oraz przypisanymi do nich kluczami w formie łańcuchów znaków. Wartość i klucz stanowią parę, którą oddziela się dwukropkiem. Po niemal każdej parze (z wyjątkiem ostatniej w obiekcie) stawia się przecinek. Obiekty, w przeciwieństwie do tablic, wyróżnia się nawiasami klamrowymi. Uwaga – wartości w obiekcie mogą się powtarzać, ale klucze muszą być unikatowe.
Łańcuchy tekstowe, liczby, wartości logiczne i puste literały to typy proste, natomiast tablice i obiekty stanowią typy złożone.
Co więcej, JSON pozwala na wykorzystywanie struktur obiektów zagnieżdżonych, np. umieszczanie tablic i obiektów w tablicach, dzięki którym można przechowywać i wysyłać hierarchiczne, złożone dane.
W jaki sposób JSON ułatwia wymianę danych między serwerem a aplikacjami webowymi?
JSON upraszcza przesyłanie danych pomiędzy różnymi technologiami, w tym między aplikacjami sieciowymi i mobilnymi a serwerami stworzonymi w innych językach programowania. Transfer informacji w lekkim formacie JSON pozwala na utrzymywanie dynamicznych, interaktywnych środowisk WWW, które sprzyjają pozytywnym doświadczeniom konsumentów. Co więcej, zastosowanie formatu JSON przyspiesza niektóre procesy w zespole, co sprawia, że nawet zarządzanie projektem staje się łatwiejsze.
JSON a inne formaty danych
Czym różni się JSON od XML?
XML (Extensible Markup Language), nazywany rozszerzalnym językiem znaczników, jest uniwersalny jak JSON, ale używa się go do projektowania bardziej złożonych struktur hierarchicznych. Dane zapisane w JSON są czytelniejsze i prostsze w obróbce. Ponadto pliki XML, które zawierają więcej znaków, mają większy rozmiar i niosą ze sobą ryzyko wolniejszego wczytywania danych. Jeżeli zapiszemy identyczne informacje w JSON i XML, okaże się, że pierwszy format zawiera o wiele mniej znaków, które nie są docelowymi danymi. To sprawia, że pliki JSON generują o wiele mniejsze obciążenie w porównaniu z XML i szybciej się wczytują.
Czy JSON jest alternatywą dla CSV?
O ile JSON i CSV to formaty tekstowe przechowywania danych, o tyle istnieją między nimi znaczące różnice. CSV (Comma-Separated Values) nie pozwala na zapisywanie danych w hierarchicznej strukturze w przeciwieństwie do JSON, ponieważ zawiera wartości rozdzielone przecinkami, co stanowi alternatywę dla informacji przechowywanych w kolumnach. Ponadto CSV nie używa typów danych, jest trudniejszy do skalowania i zintegrowania z interfejsami API.
Programowanie z JSON
Jakie języki programowania wspierają biblioteki JSON?
JSON jest wspierany przez wiele języków programowania, w tym C, C++, Java, JavaScript, PHP, Python czy Ruby.
Jak działa JSON.parse() i JSON.stringify()?
Funkcja JSON.parse() umożliwia przekonwertowanie danych tekstowych na obiekt JavaScript. Z kolei funkcja JSON.stringify() pozwala na zmianę obiektu JavaScript w łańcuch tekstowy.
Jakie narzędzia można wykorzystać do walidacji JSON?
Programista nie musi dysponować własnym narzędziem do walidacji JSON. Wystarczy skorzystać z zewnętrznych walidatorów online, które błyskawicznie weryfikują poprawność składni, np. JSON Schema Validator, JSONLint Validator and Formatter czy JSON Formatter & Validator.
Zastosowania JSON
W jaki sposób JSON poprawia wydajność aplikacji progresywnych?
Dzięki zastosowaniu JSON w aplikacji progresywnej można ograniczyć ryzyko opóźnionego przesyłania danych, szczególnie kiedy użytkownik korzysta z wolnego internetu. Słaby sygnał Wi-Fi, np. w przestrzeni publicznej, odbija się na prędkości ładowania aplikacji. Lekki format JSON sprzyja podtrzymaniu zadowalającej płynności i szybkości działania strony typu PWA (Progressive Web App) pomimo niekorzystnych warunków zewnętrznych. Co więcej, aplikacje progresywne bazują na pliku manifest.json, który umożliwia m.in. korzystanie ze strony PWA bez konieczności pobierania aplikacji z Google Play czy App Store.
Jak JSON wspiera zarządzanie konfiguracjami i ustawieniami danych?
Format JSON jest wykorzystywany nie tylko do sprawnego przesyłania danych, ale także do przechowywania i zarządzania plikami konfiguracyjnymi aplikacji mobilnych oraz webowych, co ułatwia ich modyfikowanie przez dział IT.
JSON i przyszłość technologii
Jak JSON wpłynął na rozwój NoSQL i baz danych?
Rosnąca popularność JSON przyczyniła się do rozwoju baz danych NoSQL, które charakteryzują się łatwą skalowalnością, większą elastycznością i wyższą wydajnością w porównaniu z bazami danych SQL. Jedne z najpopularniejszych baz danych NoSQL to Redis, MongoDB i Couchbase (dawniej Membase).