Konfigurując mechanizmy automatyzujące codzienne czynności, bardzo szybko spotkasz się z koniecznością przekazywania danych pomiędzy modułami, pomiędzy aplikacjami, czy pomiędzy Twoją aplikacją a interfejsem API. Zmienne systemu operacyjnego do takich zadań nie wystarczą, dlatego musisz skorzystać z jednej z dostępnych struktur danych. Znajomość dwóch z nich jest wręcz niezbędna – są to XML i JSON. Osobiście preferuję korzystanie z tego drugiego, gdzie tylko jest to możliwe. Przede wszystkim ze względu na lepszą czytelność informacji i prostotę użycia.
Typy danych w JSON
Nazwa JSON to skrót od JavaScript Object Notation. Choć nazwa sugeruje nam związek z konkretnym językiem programowania, to tak naprawdę jest to niezależny format służący do zapisu danych. Pliki z danymi zapisanymi w tym formacie mają rozszerzenie .json
, jest to także zarejestrowany internetowy typ danych identyfikowanych jako application/json.
Podstawowe typy danych to:
- Number – liczba zapisana w notacji dziesiętnej lub wykładniczej
- String – sekwencja zera lub więcej znaków Unicode zapisana w cudzysłowie
- Boolean – binarna wartość oznaczająca
false
lubtrue
- Array – uporządkowana lista składająca się z zera lub większej liczby wartości dowolnego typu, zapisujemy ją w nawiasach kwadratowych
- Object – nieuporządkowany zbiór typu nazwa-wartość
- Null – wartość pusta, czyli
null
.
Spacje, tabulacje, znaki końca linii czy powrotu karetki (carriage return) są przez parsery ignorowane. Niemniej ich stosowanie w zapisie jest niezbędne, aby zapewnić jego czytelność. A to właśnie czytelność i przejrzystość struktury obiektów są jedną z największych jego zalet. Największą zaś moim zdaniem wadą jest brak składni służących do wstawiania komentarzy.
Przykład
Poniżej znajduje się przykładowa struktura zawierająca wszystkie opisane powyżej elementy.
{ "hostname": "nazwa.hosta.lan", "age": 2, "owner": null, "active": true, "interfaces": [ { "name": "eth0", "address": "172.16.16.1" }, { "name": "eth1", "address": "10.0.0.1" } ] }
Struktura obiektu JSON jest bardzo czytelna, co więcej łatwo ja stworzyć czy przetworzyć w sposób programowy.
Jak tworzyć i przetwarzać obiekty JSON?
Jeżeli tworzysz obiekty manualnie, przyda Ci się do tego dobry edytor. Jeżeli tak jak ja jako swoje środowisko IDE, w którym programujesz, wybrałeś pyCharm, to edycja i walidacja struktur jest w nim już wbudowana. Podobne funkcjonalności znajdzie w pozostałych produktach, o których wspomniałem w artykule. W Atom prawdopodobnie będziesz musiał zainstalować dodatkowe wtyczki. Możesz także skorzystać z edytorów online takich jak JSON Editor Online. W sieci znajdziesz też wiele stron pozwalających na walidację poprawności struktur JSON. Jedną z nich jest JSON Formatter & Validator.
Jeżeli piszesz aplikację w języku Python, to znajdziesz wiele bibliotek przeznaczonych do parsowania i tworzenia struktur JSON. Ja najczęściej korzystam z systemowej biblioteki json
, natomiast do przejrzystego wyświetlania struktury na ekranie biblioteki pprint
. W repozytorium bibliotek języka Python znajdziesz wiele dodatkowych bibliotek, z których możesz skorzystać.