Promotic
WikipediaLinkedInYoutubeTwitterFacebook

JSON - tekstowy format wymiany danych

JSON (JavaScript Object Notation, obiektowy zapis JavaScript) to tekstowy sposób zapisu danych (format danych) niezależny od platformy komputera. Służy do transferu danych, które mogą być zawarte w tablicach w obiektach. JSON przedstawia dowolną strukturę danych (liczba, łańcuch, boolean, null, obiekt lub z nich złożoną tablicę) zapisaną w formie tekstowej (łańcuch). Złożoność hierarchii nie jest teoretycznie nijak ograniczona. Zapis JSON jest równocześnie ważnym zapisem języka JavaScript.
 
Zapis danych JSON jest bardzo prosty, odciążony oraz łatwy do odczytu. W porównaniu do formatu XML JSON jest oszczędniejszy, bardziej czytelny oraz prostszy w obróbce. Struktury danych zapisane w JSON można w prosty sposób użytkować nie tylko w JavaScript ale również w innych językach programowania oraz środowiskach włacznie z systemem PROMOTIC.
 

Typy danych w JSON

- String: Łańcuch tekstowy. Łańcuch musi być włożony do cudzysłowia (apostrofy nie są zezwolone) oraz może zawierać dowolne znaki Unicode. Cudzysłów oraz lewy ukośnik należy wstawić w formie \" i \\. Dowolny znak (tak jak w JavaScript) można zapisać również w formie uXXXX, gdzie XXXX oznacza kod znaku z tabelki Unicode zapisany w postaci heksadecymalnej.

Przykład: "Temperatura", "Nazwa jest \"PROMOTIC\""

- Number: Liczba, liczba całkowita lub liczba rzeczywista (włącznie z zapisem wykładnika). Znakiem dziesiętnym jest zawsze kropka.

Przykład: 1316, -1.23, 0.12e-4

- Boolean: Wartość logiczna.

Przykład: true, false

- Null: Wartość null (nie określono).

Przykład: null

- Array: Tablica (lista wartości). Ogranicają ją nawiasy kwadratowe []. Tablica w JSON to zbiór zawierający uszeregowaną listę wartości. Wartościami tablicy możgą być dowolne typy danych JSON włącznie obiektu lub tablicy.

Przykład:

[12, "Beethoven", 33.6, false]

[0.2, ["Mozart", "Wolfgang, "Amadeus", 1756], "Salzburg", 35.8, false]

- Object: Obiekt (para nazwa-wartość). Ograniczają go nawiasy klamrowe {}. Obiekt w JSON nie jest pełnowartościowym obiektem, jaki znamy z JavaScript. Chodzi o kontejner, który zawiera tylko dane bez żadnych metod. Każda pozycja danych (wartość) obiektu posiada swój klucz, który jest typu String. Do obiektu można wkładać następne obiekty oraz tablice, w taki prosty sposób można wytwarzać bardziej złożone struktury.

Przykład:

{"x": 100, "y": 100}

{"position": {"x": 100, "y": 100}, "size": {"dx": 200, "dy": 100}}

 
Wartości reszty typów danych nie można bezpośrednio wkładać ale muszą one zostać przetransformowane do niektórego z typów JSON. Na przykład w celu włożenia daty do JSON należy ją zamienić na łańcuch lub liczbę.
 
JSON korzysta z dwu podstawowych uniwersalnych struktur:
- Kolekcja par nazwa-wartość (Object) - w systemie PROMOTIC to obiekt PmMap.
- Uszeregowana lista wartości (Array) - w systemie PROMOTIC to obiekt PmArray.

Wsparcie JSON w systemie PROMOTIC

Pm.JsonParse metoda: Z tekstu w formacie JSON zostanie wytworzony obiekt, tablica lub wartość podstawowa
Pm.JsonStringify metoda: Z obiektu, tablicy lub podstawowej wartości wytworzy tekst w formacie JSON
Przykład całościowy:

Zapis tekstowy JSON:

{"name":"BoilerRoom"; "count":2; "boilers": [{"temperature":36.3;"power":78}, {"temperature":12.6;"power":0}]}

przy pomocy metody Pm.JsonParse zostanie przekonwertowany do jednej zmiennej (obiekt PmMap) zawierającej właściwości:

name: typ danych=String, wartość="BoilerRoom"
count: typ danych=Double, Wartość=2
boilers: typ danych=PmArray:
    0. indeks: typ danych=PmMap:
        temperature: typ danych=Double, Wartość=36.3
        power: typ danych=Double, Wartość=78
    1. indeks: typ danych=PmMap:
        temperature: typ danych=Double, Wartość=12.6
        power: typ danych=Double, Wartość=0
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice