JSONJSON

JSON – JavaScript Object Notation, jest to lekki format wymiany danych komputerowych. Ale co to tak naprawdę znaczy i po co to jest?

Wykorzystanie

JSON’a wykorzystuje się przy przesyłaniu danych pomiędzy urządzeniami np. pomiędzy naszymi przeglądarkami a serwerami gdzie znajdują się dane. Często zamiast pojedynczej danej chcemy przesłać listę wartość lub co jest częściej spotykane obiekt lub zbiór obiektów które posiadają nazwę i przypisaną do niej wartość wraz z informacjami jakie ze sobą niesie. Do tego zadania idealnie nadaje się JSON.

Schemat przesyłanych danych

Dane są budowane na zasadzie pary nazwa – wartość oddzielone dwukropkiem. Każda kolejna dana jest oddzielona przecinkiem a całość zamknięta nawiasami klamrowymi.

{  "name":"wartość",
   "lastName":"wartość",
   "badges":["wartość","wartość","wartość"]}

W powyższym przykładzie jest przesyłany jest obiekt który posiada 3 pola. Pierwsze dwa posiadają tylko wartości. Trzecie pole jest to lista. Dane w listach są zamknięte nawiasami kwadratowymi i oddzielone od siebie przecinkami. Jeżeli budujemy naszego JSON’a automatycznie i w nawiasach nic się nie znajdzie wtedy strona odbierająca dane wie, że lista nie zawiera żadnych elementów.

Jeżeli przestrzegamy jako nadawca wystawionego API to strona odbierająca może łatwo je przetworzyć. Powyższe dane mogą być sparsowane np. na taki obiekt:

public class User {
    String name;
    String lastName;
    List<String> badges;
}

Dane które są przysyłane przy pomocy tego formatu są proste w odczycie zarówno przez urządzenia jak i przez samego użytkownika.

Jeżeli chcemy zbudować bardziej złożony obiekt wtedy bierzemy powyższe elementy jak klocki z których budujemy dowolne obiekty jak w przykładzie poniżej:

{  "name" : "JustPlayer002",
   "user" : { "name":"Andrzej",
              "lastName":"Kowalski",
              "badges":["Team Player","Collector"]
             },
   "character" : "DWARF",
   "board" : "MAIN",
   "equipment" : ["Hammer","Shield","Boots"]
}

Powyższe dane mogą być sparsowane np. na taki obiekt:

public class Player {
    String name;
    User user;
    Character character;
    Board board;
    List<String> equipment;
}

Gdzie "Character" i "Board" mogą być prostymi Enum'ami, "User" jest klasą o której wspomnieliśmy wcześniej a "equipment" jest prostą listą. W ten sposób są budowane bardziej złożone i zagnieżdżone obiekty. Na szczęście do ich serializacji i deserializacji na backendzie służą odpowiednie narzędzia jak np. Jackson dzięki czemu nie musimy robić tego ręcznie.

Podsumowanie

Jason jest przyjaznym użytkownikowi formatem wymiany danych. Poza prostotą w odczycie przez człowieka ma dużo mniej zbędnych znaków niż XML. Oczywiście poza JSON’em istniej wiele innych formatów do przesyłania danych wykorzystywanych przez np. przez żądania HTTP.

JSON
JSON

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *