Kod

JSON: Czym jest ten format i jak go używać

JSON: Czym jest ten format i jak go używać / Skillbox Media

Zdobądź umiejętności programowania w Pythonie bez wydawania pieniędzy ➞ Opanuj Pythona i naucz się tworzyć Telegram boty, parsery sieciowe i strony internetowe od podstaw dzięki bezpłatnemu kursowi eksperta Sber.

Dowiedz się więcej

JSON, czyli JavaScript Object Notation, to powszechnie akceptowany format tekstowy używany do przechowywania i przesyłania danych strukturalnych. Format ten opiera się między innymi na składni obiektów JavaScript. Współczesne języki programowania, takie jak Python, Java i wiele innych, obsługują ten format.

Przed wprowadzeniem JSON interakcja z serwerem wymagała ciągłego odświeżania strony w przeglądarce, co znacznie spowalniało strony internetowe. Jednak wraz z pojawieniem się żądań AJAX wykorzystujących JSON, stało się możliwe wykonywanie tych operacji w tle, bez konieczności przeładowywania strony. Innowacja ta znacząco zwiększyła szybkość pracy z zasobami internetowymi, a JSON stał się standardem przesyłania danych w sieci.

Dzisiaj zapoznamy się z formatem JSON.

  • jak powstał format;
  • jego zalety w porównaniu z innymi formatami;
  • podstawowe zasady konstrukcji i reguły języka;
  • obiekty i tablice;
  • JSON5 jest rozszerzeniem formatu JSON (JavaScript Object Notation), które wprowadza dodatkowe funkcje i uproszczenia w pracy z danymi. W przeciwieństwie do swojego poprzednika, JSON4, JSON5 oferuje bardziej elastyczne konstrukcje składniowe, umożliwiając na przykład stosowanie komentarzy, usuwanie cudzysłowów z kluczy, jeśli są one prawidłowymi identyfikatorami, oraz obsługę bardziej złożonych formatów danych, takich jak ciągi wielowierszowe.

    Główną różnicą między JSON5 a JSON4 jest to, że JSON5 koncentruje się na poprawie czytelności i możliwości zapisu danych, dzięki czemu jest bardziej odpowiedni do plików konfiguracyjnych i innych zastosowań, w których ważna jest zrozumiałość. Z drugiej strony, JSON4 jest bardziej rygorystycznym i tradycyjnym formatem, co może komplikować jego użycie w niektórych scenariuszach. Dzięki temu JSON5 jest nowocześniejszy i dostosowany do potrzeb programistów, oferując więcej możliwości pracy z danymi.

  • Schemat JSON to narzędzie do opisywania struktury i zawartości danych JSON. Pozwala programistom formalizować wymagania dotyczące danych, definiując, które pola muszą być obecne, ich typy i możliwość dodatkowych właściwości. Schemat JSON może być używany nie tylko do walidacji danych, ale także do dokumentowania interfejsu API, czyniąc go bardziej zrozumiałym dla użytkowników. Ten standard pomaga zapewnić spójność i przewidywalność podczas pracy z JSON, upraszczając proces rozwoju i interakcję między różnymi komponentami oprogramowania.
  • Jak pracować z JSON;

Jak powstał JSON

Douglas Crockford, amerykański programista, powszechnie znany ze swojej roli w rozwoju języka JavaScript, jest uważany za twórcę formatu JSON. Jest również twórcą znanego statycznego analizatora kodu JSLint i autorem takich książek, jak „JavaScript: The Good Parts” i „Jak działa JavaScript”.

Douglas CrockfordZdjęcie: Wikimedia Commons

„Poznałem format JSON. Nie mogę powiedzieć, że to ja go wynalazłem, ponieważ istniał już przede mną. Po prostu go odkryłem, nadałem mu nazwę i wyjaśniłem, jak go używać. Wiem, że inni również dokonali tego odkrycia, co najmniej rok przede mną. Pierwszy znany mi przypadek pochodzi z firmy Netscape, gdzie ktoś używał literałów tablicowych JavaScript do przesyłania danych w 1996 roku, czyli co najmniej pięć lat przed tym, jak sam wpadłem na ten pomysł.

Douglas Crockford, znany programista i ekspert programistyczny, odegrał kluczową rolę w stworzeniu i popularyzacji formatu JSON, który stał się integralną częścią współczesnego tworzenia stron internetowych. Jego praca, znana jako „Saga JSON”, obejmuje kontekst historyczny, ewolucję i wykorzystanie tego lekkiego formatu wymiany danych.

JSON, akronim od JavaScript Object Notation, został zaprojektowany jako prosty i wygodny sposób reprezentacji danych strukturalnych. Stał się alternatywą dla bardziej złożonych formatów, takich jak XML, ze względu na swoją prostotę i czytelność. Crockford, dostrzegając potencjał JSON, aktywnie promował jego wykorzystanie. podkreślając korzyści, jakie przynosi ono programistom i aplikacjom.

W trakcie swojej kariery Crockford nie tylko wdrożył JSON do różnych technologii, ale także stał się jego orędownikiem, wyjaśniając, jak format ten może usprawnić interakcje między klientami a serwerami. Dzięki jego staraniom JSON zyskał powszechną akceptację i stał się standardem w wielu nowoczesnych interfejsach API.

Wkład Douglasa Crockforda w rozwój JSON i jego filozofia upraszczania wymiany danych wywarły znaczący wpływ na programowanie i tworzenie stron internetowych, zapewniając programistom potężne narzędzie do tworzenia wydajniejszych i przyjaznych dla użytkownika aplikacji.

Na początku 2001 roku Douglas Crockford i Chip Morningstar założyli firmę State Software. Pracując nad różnymi projektami, napotkali poważny problem: przesyłanie danych między serwerem a przeglądarką wymagało ciągłego odświeżania strony, co negatywnie wpływało na wydajność.

Aby rozwiązać ten problem, stosowano różne metody, w tym specjalistyczne wtyczki do przeglądarek oparte na technologii Flash i apletach Java. Jednak interakcja z nimi okazała się pracochłonna i często podatna na błędy.

W tym momencie Crockford przypomniał sobie koncepcję, którą usłyszał kiedyś od pracownika Netscape. Postanowił zintegrować obiekt JavaScript z kodem HTML, który wysyłał komunikat na stronę internetową. Pierwotna wersja wyglądała tak:

Kod, który miał przekazać komunikat z okna potomnego do jego okna nadrzędnego za pośrednictwem obiektu nadrzędnego, nie zadziałał, ponieważ słowo „do” jest zarezerwowane w JavaScript. Aby rozwiązać ten problem, Crockford użył cudzysłowów, umieszczając wszystkie klucze w obiekcie.

W ten sposób narodził się nowy format, który początkowo planowano nazwać JSML (JavaScript Markup Language), ale ostatecznie wybrano JSON (JavaScript Object Notation).

W 2001 roku Crockford stworzył stronę internetową, na której szczegółowo opisał ten format, umożliwiając wszystkim programistom korzystanie z niego w swoich projektach.

„Tworząc JSON, kierowałem się zasadami minimalizmu. Wierzyłem, że jeśli zmniejszymy liczbę rzeczy, które należy uzgodnić, zwiększy to szanse na łatwiejszą interoperacyjność między nami. Moim celem było, aby standard JSON można było umieścić na odwrocie wizytówki”.

Douglas Crockford jest znaną postacią w dziedzinie technologii i programowania, szczególnie za swój wkład w rozwój i popularyzację języka JavaScript. Aktywnie dzieli się swoją wiedzą i pomysłami za pośrednictwem różnych platform, w tym Hackernoon, gdzie publikuje artykuły i przemyślenia, które pomagają rozwijać społeczność programistów. W jego pracach często podkreśla się zasady dobrego projektowania i optymalizacji kodu, dzięki czemu są przydatne zarówno dla początkujących, jak i doświadczonych programistów.

Standard JSON na odwrocie wizytówki. Zdjęcie: Eric Miraglia / Flickr

JSON wyróżnia się na tle podobnych formatów — takich jak XML, CSV i YAML — zwięzłą składnią i kompaktowym rozmiarem pliku, co czyni go szczególnie przydatnym do stosowania w aplikacjach internetowych. Doprowadziło to do szybkiego wzrostu jego popularności.

Liczba żądań w infografice StackOverflow: Trendy Stack Overflow

W 2014 roku organizacja normalizacyjna ECMA oficjalnie zatwierdził format JSON, opracowując jego specyfikację. Obecnie format ten stał się kluczowym sposobem wymiany danych między serwerami WWW a przeglądarkami.

W tej sekcji przyjrzymy się poprawnej wymowie terminu JSON, który budzi wiele pytań wśród programistów. Istnieją dwie metody wymowy: z akcentem na „e” i z akcentem na „o”. Jeden z twórców tego formatu, Chip Morningstar, najlepiej odpowie na to pytanie.

„Często słyszę, jak ludzie wymawiają moje imię jako „JaysOn” i zawsze mnie to bawi. Za każdym razem, gdy jestem na jakimś wydarzeniu i ktoś zwraca się do mnie w ten sposób, poprawiam go z uśmiechem: „Jason”. Zazwyczaj są zaskoczeni i pytają: „Skąd to wiedziałeś?” Odpowiadam: „Bo to ja ją wynalazłem”.

Chip Morningstar, znany programista i innowator w dziedzinie technologii komputerowej, pozostawił znaczący ślad w historii cyfrowej rozrywki i programowania. Jego wkład w rozwój wirtualnych światów i gier MMORPG miał ogromny wpływ na branżę. W trakcie swojej kariery aktywnie uczestniczył w tworzeniu unikalnych projektów, które zmieniły koncepcję interakcji użytkownika w przestrzeni cyfrowej.

Do jego osiągnięć można zaliczyć stworzenie jednej z pierwszych gier MMORPG, w której gracze mogli wchodzić ze sobą w interakcję w czasie rzeczywistym. Ta innowacja otworzyła nowe horyzonty dla graczy i programistów, kładąc podwaliny pod współczesne gry MMORPG.

Morningstar przywiązywał również wagę do designu i doświadczenia użytkownika, co pozwoliło mu tworzyć nie tylko mechanikę gier, ale także bogate emocjonalnie światy. Jego praca zainspirowała całe pokolenie programistów i projektantów dążących do tworzenia bardziej interaktywnych i immersyjnych przestrzeni wirtualnych.

W ten sposób Chip Morningstar nie tylko stał się pionierem w swojej dziedzinie, ale także wywarł znaczący wpływ na kształtowanie przyszłości rozrywki cyfrowej, pozostawiając jasny ślad w historii programowania i projektowania gier.

Zalety JSON

JSON to nie jedyny sposób wymiany danych. Alternatywami są XML i YAML, również wykorzystywane przez deweloperów. JSON ma jednak szereg zalet, które wyróżniają go na tle tych formatów:

Składnia, która charakteryzuje się prostotą i łatwością percepcji, jest zrozumiała zarówno dla ludzi, jak i komputerów. Nie musisz być ekspertem JavaScript, aby opanować sztukę pisania i interpretowania danych. Wkrótce się o tym przekonasz.

Kompaktowość i prostota. W porównaniu z plikami w innych formatach, pliki JSON są mniejsze i ładują się szybciej. Badania pokazują, że nowoczesne przeglądarki potrafią przetwarzać JSON dziesiątki razy szybciej niż XML.

Nie ma potrzeby przywiązywania się do konkretnego języka programowania. Prawie każdy popularny język, taki jak Python czy Java, nadaje się do pracy z JSON.

Różnorodność typów danych. JSON nadaje się do przechowywania tablic, sekwencji i zestawów par klucz-wartość. To jednak nie wszystkie jego możliwości. Format ten doskonale nadaje się również do reprezentowania złożonych struktur danych, takich jak drzewa i struktury hierarchiczne.

Szeroka kompatybilność z przeglądarkami. Wszystkie obecne przeglądarki internetowe obsługują format JSON.

Autonomiczna dokumentacja. Format JSON umożliwia dodawanie metadanych charakteryzujących zawarte w nim dane, co ułatwia korzystanie z niego.

Organizacja i gramatyka formatu JSON

Składnia JSON jest podobna do składni zwykłego obiektu JavaScript: informacje są reprezentowane jako pary klucz-wartość, rozdzielone przecinkami. Należy pamiętać, że po ostatniej parze nie powinno być przecinka — jest to częsty błąd, który może być dość trudny do wykrycia.

Klucze to zmienne łańcuchowe, natomiast wartości mogą przyjmować różne formy: ciągów znaków, liczb, wartości logicznych, obiektów, tablic lub wartości null. Standardowy format JSON nie obsługuje funkcji ani dat.

Przykładem prostego pliku JSON jest następujący format:

Chociaż format JSON jest pierwotnie oparty na JavaScript, jego specyfikacja dopuszcza pewne elementy, które nie są dozwolone w JavaScript. Na przykład w formacie JSON znaki oddzielające wiersze i akapity można zapisywać bez konieczności stosowania znaku ucieczki.

Podczas pracy z datami w formacie JSON ważne jest, aby przekonwertować je na format ciągu znaków zgodny ze standardem ISO 8601.

Pełny opis wymagań dotyczących składni JSON jest dostępny na platformie Datatracker. Aby upewnić się, że składnia jest poprawna lub zgodna z przyjętymi standardami, dostępnych jest wiele walidatorów online, takich jak JSON Validator.

Struktury danych JSON: obiekty i tablice

W formacie JSON dane są organizowane za pomocą dwóch głównych struktur: obiektów i tablic.

Obiekty to nieuporządkowane kolekcje. Kolejność par klucz-wartość nie ma dla nich znaczenia, co pozwala na ich reorganizację. Należy jednak zachować ostrożność! Przenosząc parę klucz-wartość z dowolnego miejsca na koniec, programista często zapomina o usunięciu przecinka, co może prowadzić do błędu.

Obiekt JSON jest podobny do obiektów w JavaScript, jednak klucze zawsze muszą być ujęte w cudzysłów. Na przykład:

Tablice to uporządkowany zbiór elementów. Ich wizualna reprezentacja wygląda następująco:

W kontekście tablic kolejność elementów odgrywa istotną rolę. W przeciwieństwie do obiektów, tablice nie mają kluczy, co oznacza, że ​​aby uzyskać dostęp do wartości, należy użyć indeksu odpowiadającego im elementu. Należy pamiętać, że indeks pierwszego elementu zaczyna się od zera.

Obiekty i tablice mogą zawierać się nawzajem i nie ma ograniczeń co do liczby poziomów, na których może to mieć miejsce.

Czym jest JSON5

JSON5 to ulepszona wersja standardu JSON, która sprawia, że ​​proces odczytu i zapisu danych jest wygodniejszy i bardziej zrozumiały. Ponadto oferuje nowe funkcje, takie jak możliwość dodawania komentarzy, której brakuje w oryginalnym standardzie.

Kluczowe funkcje JSON5, które mogą być przydatne podczas pracy z:

Podaj tekst, który chcesz przepisać.

Cudzysłowy dla kluczy są opcjonalne, ale można je pominąć, jeśli klucz składa się wyłącznie z liter, cyfr lub podkreśleń i nie jest słowem kluczowym.

Istnieje konkretny standard zapisywania dat i godzin:

System pozwala na teksty wielowierszowe, co umożliwia wprowadzanie ciągów znaków bez konieczności stosowania skomplikowanych znaków ucieczki.

Umożliwia używanie podkreśleń w liczbach dla zwiększenia czytelności.

Obsługuje systemy liczbowe szesnastkowe i ósemkowe.

Należy jednak pamiętać, że nie wszystkie parsery, aplikacje i biblioteki obsługują JSON5, co obecnie hamuje jego wdrażanie.

Zrozumienie schematu JSON

Istnieje specjalistyczny język o nazwie schemat JSON, przeznaczony do opisywania i weryfikacji danych w formacie JSON. Wyobraźmy sobie standardowy plik JSON:

Programista ma wątpliwości co do wymaganych pól, typów danych i innych cech wartości. Schemat JSON umożliwia integrację ważnych metadanych, a także ustalenie „reguł” dla tych informacji. Pozwala to jasno określić, które pola muszą zostać wypełnione i jakie dane mogą zawierać.

Schemat JSON służy jako narzędzie do walidacji danych podczas wymiany informacji między różnymi systemami lub podczas pracy z danymi otrzymanymi od użytkowników. Jeśli nowe dane nie są zgodne z ustalonym schematem, programista natychmiast otrzymuje powiadomienie o błędzie, co pozwala mu na dogłębną analizę informacji, wprowadzenie niezbędnych korekt lub zażądanie aktualizacji.

Ten kod zapewnia niezawodność, przewidywalność i tolerancję błędów, umożliwiając jasne wymagania dotyczące formatowania danych. Przykład wyglądu powyższego pliku został przedstawiony przy użyciu schematu JSON:

Przejdźmy przez kod wiersz po wierszu.

  • Pierwsze zdanie zawiera link do wersji specyfikacji schematu JSON.
  • Informacje muszą należeć do klasy „object”.
  • Obiekt musi zawierać trzy wymagane atrybuty: „name”, „age” i „address”.
  • Każde pole ma swój własny typ danych: „string” jest używany dla imienia, „number” dla wieku, a „object” dla adresu.
  • Pole „address” musi być obiektem i musi zawierać dwa wymagane podpola: „city” i „zip”, które muszą być typu string.

Jak pracować z JSON

Znajomość pracy z plikami JSON jest podstawą Programiści, ponieważ ten format służy jako podstawowy standard przesyłania danych w aplikacjach internetowych i mobilnych.

Zasadniczo interakcja z formatem JSON obejmuje dwa kluczowe procesy: serializację i deserializację. Przyjrzyjmy się im bliżej.

Serializacja to proces konwersji danych z ich natywnego formatu, takiego jak obiekt JavaScript, do formatu JSON, który można przesłać do serwera. Większość języków programowania oferuje wbudowane metody lub biblioteki do realizacji tego zadania. Na przykład w JavaScript konwersja obiektu o nazwie „person” do pliku JSON wyglądałaby następująco:

Deserializacja, w przeciwieństwie do serializacji, konwertuje informacje z formatu JSON z powrotem do struktury, której programista może użyć w swoim kodzie.

O czym należy pamiętać

Przypomnijmy sobie wszystko, czego dowiedzieliśmy się o formacie danych JSON:

  • JSON to powszechnie akceptowany format tekstowy do przechowywania i wymiany ustrukturyzowanych danych. Jest najczęściej wykorzystywany w technologiach internetowych.
  • Informacje w formacie JSON są zorganizowane w kombinacje klucz-wartość.
  • JSON wykorzystuje dwie struktury kluczy do organizacji danych: obiekty i tablice. Obiekty to nieuporządkowane kolekcje, podczas gdy tablice są uporządkowane.
  • JSON5 oferuje dodatkowe funkcje w porównaniu z tradycyjnym formatem, ale obecnie nie jest obsługiwany przez przeglądarki internetowe.
  • Schemat JSON służy jako narzędzie do opisywania wymagań dotyczących danych, umożliwiając programistom określenie, które pola są wymagane i jakie formaty są dla nich akceptowalne.
  • Istnieją dwie kluczowe metody pracy z JSON: pierwszą jest serializacja, która umożliwia konwersję JavaScript lub innych języków programowania do formatu JSON. Drugą metodą jest deserializacja, która działa odwrotnie: konwertuje dane JSON z powrotem do zwykłego kodu.

Jeśli chcesz dowiedzieć się więcej o programowaniu i kodzie, dołącz do naszego kanału Telegram!

Przeczytaj również:

  • Sposoby konwersji HTML do JSON: Tworzenie funkcjonalnej aplikacji JavaScript.
  • API, czyli Application Programming Interface, to zestaw reguł i protokołów, które umożliwiają różnym systemom oprogramowania interakcję ze sobą. Służy jako pośrednik, który upraszcza wymianę danych i funkcjonalności między aplikacjami.

    Główną ideą API jest zapewnienie ujednoliconego sposobu dostępu do funkcji i danych, eliminując potrzebę całkowitego przepisywania kodu. Pozwala to programistom na integrację usług i komponentów innych firm bez konieczności zagłębiania się w ich wewnętrzne mechanizmy.

    API działają w oparciu o żądania i odpowiedzi. Gdy jedna aplikacja chce pobrać dane lub wywołać określoną funkcję w innej aplikacji, wysyła żądanie za pośrednictwem API. To żądanie zazwyczaj zawiera informacje o tym, co dokładnie jest potrzebne, i może zawierać parametry doprecyzowujące żądanie. Następnie API przetwarza żądanie, wchodzi w interakcję z wymaganą usługą, a wynik jest zwracany jako odpowiedź zawierająca żądane informacje lub potwierdzenie działania.

    W ten sposób API upraszcza proces tworzenia oprogramowania, umożliwiając budowę bardziej złożonych systemów przy użyciu istniejących rozwiązań, co znacznie przyspiesza proces tworzenia oprogramowania.

  • Zmiany w wynagrodzeniach programistów PHP w Rosji w 2023 r.: analiza Skillbox Media.