Promotic

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 tekstowy). 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łącznie 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łowy oraz lewy ukośnik należy wstawić w formie \" oraz \\. Dowolny znak (tak samo jak w JavaScript) można wprowadzić również w formie uXXXX, gdzie XXXX przedstawia kod znaku z z tabeli Unicode zapisany w układzie szesnastkowym.
Przykład: "Temperatura", "Nazwa jest \"PROMOTIC\""
- Number: Liczba, liczba całkowita lub liczba rzeczywista (włącznie z zapisem wykładnika). Separatorem 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ć do łańcucha tekstowego 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

Metoda Pm.JsonParse: Z tekstu w formacie JSON zostanie wytworzony obiekt, tablica lub wartość podstawowa
Metoda Pm.JsonStringify: 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
Patrz również:
- Pm.JsonParse (metoda)
- Pm.JsonStringify (metoda)
- PmMap (obiekt)
- PmArray (obiekt)
- Pm.FileTextRead (metoda)
- Pm.FileTextWrite (metoda)

Historia:
Pm8.03.13: Wprowadzone wsparcie tekstowego formatu JSON - tekstowy format wymiany danych. Są nowe metody:
© MICROSYS, spol. s r.o.