Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

JSON

Termin Definicja
JSON

JSON to lekki, tekstowy format wymiany danych, czytelny zarówno dla człowieka, jak i dla programu.

JSON jako format zapisu i wymiany danych

JSON, czyli JavaScript Object Notation, jest uporządkowanym sposobem przedstawiania informacji w postaci tekstu. Dane zapisuje się w nim tak, aby mogły zostać przesłane między aplikacjami, zapisane w pliku albo odczytane przez człowieka bez specjalistycznego edytora. W praktyce JSON występuje między innymi w komunikacji pomiędzy przeglądarką internetową a serwerem, w konfiguracji programów, w plikach ustawień oraz w eksporcie danych z różnych systemów.

Struktura JSON opiera się na parach klucz-wartość. Klucz opisuje znaczenie informacji, a wartość może być tekstem, liczbą, wartością logiczną, wartością pustą, obiektem lub tablicą. Obiekt zapisuje się w nawiasach klamrowych, natomiast tablicę w nawiasach kwadratowych. Tekst musi znajdować się w podwójnych cudzysłowach, a poszczególne elementy oddziela się przecinkami. Dzięki temu możliwe jest przedstawienie zarówno prostego zestawu ustawień, jak i wielopoziomowej struktury zawierającej wiele powiązanych rekordów.

Przykładowy zapis może wyglądać następująco:

  • {"nazwa":"monitor","aktywny":true,"parametry":{"przekatna":24,"zlacze":"HDMI"}}

W takim obiekcie występuje nazwa urządzenia, informacja logiczna o jego aktywności oraz zagnieżdżony obiekt z parametrami. Sam zapis nie wykonuje żadnej operacji. Jest wyłącznie reprezentacją danych, którą odpowiedni program może odczytać i przekształcić na własne struktury wewnętrzne.

JSON w kontekście technicznym i na tle innych formatów

JSON jest często porównywany z XML, CSV oraz formatami binarnymi. W porównaniu z XML zwykle wymaga mniej dodatkowych znaczników, dlatego zapis bywa krótszy i łatwiejszy do wykorzystania w aplikacjach internetowych. XML może jednak lepiej sprawdzać się tam, gdzie potrzebne są rozbudowane reguły walidacji, przestrzenie nazw lub szczegółowe metadane. CSV jest prostszy w przypadku tabeli z regularnymi kolumnami, ale słabiej opisuje dane zagnieżdżone, listy oraz relacje pomiędzy różnymi elementami.

W stosunku do formatów binarnych JSON jest bardziej przejrzysty podczas ręcznego sprawdzania. Można go otworzyć w zwykłym edytorze tekstu, odszukać konkretny klucz i ocenić, czy wartość została zapisana poprawnie. Ceną za czytelność jest większy rozmiar pliku oraz konieczność przeprowadzenia parsowania przed użyciem danych przez program. Przy bardzo dużych zbiorach albo przy wymaganiach dotyczących małego zużycia pamięci mogą być używane inne rozwiązania, lecz JSON pozostaje wygodny w codziennej integracji aplikacji.

W komunikacji sieciowej dane JSON są często przesyłane w treści żądania lub odpowiedzi HTTP. Serwis internetowy może zwrócić obiekt opisujący użytkownika, listę produktów, status operacji albo komunikat o błędzie. Program po drugiej stronie odczytuje tekst i zamienia go na obiekt, tablicę lub inną strukturę właściwą dla używanego języka programowania. Istotne jest przy tym ustalenie nazw pól, typów wartości, wymaganych elementów oraz sposobu sygnalizowania braku danych.

JSON nie jest tym samym co język programowania JavaScript. Nazwa nawiązuje do jego składni, ale format może być obsługiwany przez wiele środowisk, między innymi przez aplikacje tworzone w Pythonie, Javie, C#, PHP, Go oraz innych językach. W pliku JSON nie powinno się umieszczać komentarzy, funkcji ani poleceń. Dopuszczalny jest wyłącznie określony zestaw typów danych, co ułatwia wymianę informacji, ale wymaga pilnowania poprawnej składni.

JSON a typowe problemy z plikami i danymi

Najczęstszy problem stanowi niepoprawny zapis składni. Brak przecinka, dodatkowy przecinek, niedomknięty nawias klamrowy albo pominięty cudzysłów może sprawić, że cały plik przestanie być możliwy do odczytania. Podobny efekt powoduje użycie pojedynczych cudzysłowów w miejscu, w którym wymagane są podwójne, albo wpisanie słowa bez cudzysłowu tam, gdzie powinien znajdować się tekst. Warto pamiętać, że true, false i null są specjalnymi wartościami, a nie zwykłymi napisami.

Drugą grupę trudności tworzą różnice pomiędzy typami danych. Wartość 25 jest liczbą, natomiast "25" jest tekstem. Dla człowieka oba zapisy mogą wyglądać podobnie, ale program może wykonać na nich inne operacje. Tablica z jednym elementem również nie jest równoważna pojedynczej wartości. Przy imporcie danych może to prowadzić do błędów, pomijania pól albo nieprawidłowego wyświetlania informacji.

Problemy pojawiają się także przy kodowaniu znaków. JSON jest zwykle zapisywany w standardzie UTF-8, który pozwala przechowywać polskie litery i wiele innych znaków. Jeśli aplikacja odczytuje plik w innym kodowaniu, mogą pojawić się nieczytelne symbole. Należy również zwrócić uwagę na znaki specjalne w tekście. Cudzysłów wewnątrz wartości tekstowej, ukośnik odwrotny czy przejście do nowej linii wymagają odpowiedniego zapisania, aby nie zostały pomylone z elementami składni.

Osobną kwestią jest walidacja. Plik może być poprawnym JSON-em, a mimo to nie spełniać wymagań konkretnej aplikacji. Może brakować obowiązkowego klucza, może występować nieoczekiwany typ danych albo może zostać użyta nazwa pola, której program nie rozpoznaje. Z tego powodu sprawdza się nie tylko poprawność nawiasów i przecinków, lecz także zgodność ze schematem danych opisującym wymagane elementy oraz ich format.

Nie powinno się również traktować JSON jako bezpiecznego miejsca do przechowywania poufnych informacji. Sam format nie szyfruje treści i nie nadaje uprawnień dostępu. Hasła, tokeny, dane dostępowe oraz inne wrażliwe informacje powinny być chronione odpowiednimi mechanizmami, a pliki konfiguracyjne z takimi danymi nie powinny być przypadkowo publikowane ani przesyłane osobom nieuprawnionym.

JSON w praktyce: tworzenie, odczyt i sprawdzanie

Podczas tworzenia pliku warto zacząć od ustalenia modelu danych. Należy określić, jakie informacje są potrzebne, które pola są obowiązkowe, jakie typy mają wartości oraz czy elementy będą zagnieżdżone. Przydatne jest stosowanie spójnych nazw kluczy, na przykład jednego stylu zapisu wielkości liter i jednej konwencji dla nazw liczby mnogiej. Ułatwia to późniejszy odczyt oraz ogranicza ryzyko pomylenia podobnych pól.

Po zapisaniu pliku można sprawdzić go w walidatorze JSON albo w edytorze programistycznym wyposażonym w kontrolę składni. Taki test pomaga wskazać miejsce błędu, lecz nie zawsze wykrywa problem znaczeniowy. Dlatego po walidacji składni powinno się wykonać próbny import lub odczyt w docelowej aplikacji. Sprawdza się wtedy, czy dane trafiają do właściwych pól, czy znaki są wyświetlane poprawnie i czy brakujące wartości są obsługiwane zgodnie z oczekiwaniem.

W przypadku dużych plików przydatne staje się formatowanie z wcięciami. Rozdzielenie obiektów na osobne wiersze poprawia czytelność i ułatwia porównywanie zmian. Do przesyłania danych można natomiast stosować zapis skrócony, w którym pomija się zbędne białe znaki. Nie zmienia to znaczenia informacji, ale może ograniczyć rozmiar komunikatu. Przed zmniejszeniem pliku dobrze jest zachować czytelną kopię roboczą, ponieważ późniejsza ręczna analiza zwartego zapisu jest mniej wygodna.

Przy przenoszeniu ustawień między komputerami lub aplikacjami należy zweryfikować ścieżki plików, nazwy urządzeń, dane logowania oraz zależności środowiskowe. To, co działa w jednym systemie, nie zawsze będzie działało w innym, nawet jeśli sam JSON jest poprawny. Szczególnej uwagi wymagają ścieżki zawierające znaki specjalne, wartości daty i czasu oraz liczby zapisywane z kropką lub przecinkiem. Reguły interpretacji powinny wynikać z dokumentacji programu korzystającego z pliku.

JSON i moment zgłoszenia problemu do serwisu

Do serwisu warto zgłosić się wtedy, gdy plik JSON jest potrzebny do uruchomienia programu, lecz pojawia się komunikat o błędzie, ustawienia nie są zapisywane albo aplikacja przestała odczytywać wcześniej działającą konfigurację. W pierwszej kolejności można wykonać kopię pliku, zanotować pełną treść komunikatu i sprawdzić, czy problem występuje po ostatniej zmianie ustawień. Nie należy nadpisywać jedynej kopii metodą prób, zwłaszcza gdy plik zawiera istotne dane konfiguracyjne.

Pomoc serwisowa może obejmować ocenę stanu nośnika, sprawdzenie uprawnień do pliku, analizę kodowania znaków, odtworzenie właściwej wersji konfiguracji oraz ustalenie, czy błąd leży w samym JSON, czy w aplikacji, która go wykorzystuje. W Warszawie takie czynności można powierzyć firmie Warszawskie Pogotowie Komputerowe 24/7. Przed przekazaniem urządzenia warto przygotować opis objawów, nazwę programu, moment wystąpienia problemu oraz informację o ostatnio wykonanych zmianach.

Jeśli JSON pochodzi z kopii zapasowej, eksportu ustawień lub narzędzia diagnostycznego, należy zachować oryginalny plik i nie usuwać pozostałych wersji. Pomocne może być również wskazanie, czy problem dotyczy jednego pliku, całej aplikacji, czy wszystkich dokumentów tego typu. Takie informacje ułatwiają rozdzielenie błędu składni od problemu z systemem plików, uprawnieniami, programem albo nośnikiem danych.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę