Promotic

JSON - textový formát pro výměnu dat

JSON (JavaScript Object Notation, JavaScript objektový zápis) je textový způsob zápisu dat (datový formát) nezávislý na počítačové platformě. Slouží pro přenos dat, která mohou být organizována v polích nebo obsažena v objektech. JSON představuje libovolnou datovou strukturu (číslo, řetězec, boolean, null, objekt nebo z nich složené pole) zapsanou v textové podobě (textový řetězec). Složitost hierarchie není teoreticky nijak omezena. Zápis JSON je současně platným zápisem jazyka JavaScript.

JSON zápis dat je velmi jednoduchý, odlehčený a snadno se čte. Proti formátu XML je JSON úspornější, čitelnější a lépe se zpracovává. Datové struktury zapsané v JSON se snadno používají kromě samotného JavaScript i v ostatních programovacích jazycích a prostředích včetně systém PROMOTIC.

Typy dat v JSON

- String: Textový řetězec. Řetězec musí být vložen do uvozovek (apostrofy nejsou povoleny) a může obsahovat všechny znaky Unicode. Uvozovky a zpětné lomítko je nutno vložit v podobě \" a \\. Libovolný znak (stejně jako v JavaScript) lze zadat i v podobě uXXXX, kde XXXX představuje kód znaku z tabulky Unicode zapsaný v hexadecimálním tvaru.
Příklad: "Teplota", "Název je \"PROMOTIC\""
- Number: Číslo, celé číslo nebo reálné číslo (včetně zápisu s exponentem). Desetinný oddělovač je vždy tečka.
Příklad: 1316, -1.23, 0.12e-4
- Boolean: Logická hodnota.
Příklad: true, false
- Null: hodnota null (nezadáno).
Příklad: null
- Array: Pole (seznam hodnot). Ohraničují ho hranaté závorky []. Pole v JSON je kontejner obsahující seřazený výpis hodnot. Hodnotami pole může být kterýkoliv datový typ JSON včetně objektu nebo pole.
Příklad:
[12, "Beethoven", 33.6, false]
[0.2, ["Mozart", "Wolfgang, "Amadeus", 1756], "Salzburg", 35.8, false]
- Object: Objekt (páry název-hodnota). Ohraničují ho složené závorky {}. Objekt v JSON není plnohodnotný objekt, jaký známe z JavaScript. Jedná se o kontejner, který obsahuje pouze data a žádné metody. Každá datová položka (hodnota) objektu má svůj klíč, který je typu String. Do objektu můžeme vkládat další objekty a pole, lze tak snadno vytvářet složitější struktury.
Příklad:
{"x": 100, "y": 100}
{"position": {"x": 100, "y": 100}, "size": {"dx": 200, "dy": 100}}


Hodnoty ostatních datových typů nelze přímo vkládat a musí se převést na některý z JSON typů. Například datum pro vložení do JSON převedeme do textového řetězce nebo do čísla.

JSON je tedy postaven na dvou univerzálních strukturách:
- Kolekce párů název-hodnota (Object) - v systému PROMOTIC je to objekt PmMap.
- Seřazený seznam hodnot (Array) - v systému PROMOTIC je to objekt PmArray.

Podpora JSON v systému PROMOTIC

Metoda Pm.JsonParse: Z textu ve formátu JSON vytvoří objekt, pole nebo elementární hodnotu
Metoda Pm.JsonStringify: Z objektu, pole nebo elementární hodnoty vytvoří text ve formátu JSON
Komplexní příklad:
JSON textový zápis:
{"name":"BoilerRoom"; "count":2; "boilers": [{"temperature":36.3;"power":78}, {"temperature":12.6;"power":0}]}

se metodou Pm.JsonParse převede na jednu proměnnou (objekt PmMap) obsahující vlastnosti:
name: datový typ String, hodnota="BoilerRoom"
count: datový typ Double, Hodnota=2
boilers: datový typ PmArray:
    0. index: datový typ PmMap:
        temperature: datový typ Double, Hodnota=36.3
        power: datový typ Double, Hodnota=78
    1. index: datový typ PmMap:
        temperature: datový typ Double, Hodnota=12.6
        power: datový typ Double, Hodnota=0
Viz také:
- Pm.JsonParse (metoda)
- Pm.JsonStringify (metoda)
- PmMap (objekt)
- PmArray (objekt)
- Pm.FileTextRead (metoda)
- Pm.FileTextWrite (metoda)

Historie:
Pm8.03.13: Zavedena podpora textového formátu JSON - textový formát pro výměnu dat. Jsou nové metody:
© MICROSYS, spol. s r.o.