JSON

JSON (JavaScript Object Notation) je nejčastěji používaný formát pro reprezentaci dat - používá se pro specifikaci API, configů, nebo se do něj dá ukládat celý bot - což mimo jiné náš případ 😉

JSON slouží zejména k popisování vlastností objektů. Objekt je v tomto případě jakákoli věc o které chceme zjistit jaké vlastnosti má. Vlastnosti objektu pak popisujeme takto:

"klíč": "hodnota"

Například pokud bychom popisovali vlastnost auta tak jeho objekt mohli popsat takto:

{
  "color": "blue",
  "doorCount": 3,
  "brand": "Toyota",
  "engine": {
  	"fuel": "petrol",
    "engineCapacity": 1.3,
    "cylinderCount": 4
  },
  "assets": ["AC", "GPS"]
}

Zde popisujeme vlastnosti auta jako jsou barva, počet dveří atd., kromě toho je zde zanořený objekt s vlastnostmi motoru a pole s doplňky auta - klimatizace a GPS

Objekty a pole mohou obsahovat další objekty a pole, toto může sloužit k oddělení kontextu dat

Typy v JSONu

  • String
    • Textový řetězec (to co je v uvozovkách)
    • "Petr", "I", "Hello world!"
  • Number
    • Číslo včetně desetinných, záporných a vědeckých zápisů
    • 1, -10, 2.5, 1.2e10
  • Boolean
    • Informace zda je daná vlastnost pravdivá/nepravdivá
    • true / false
  • Null
    • Žádná hodnota
  • Array
    • Pole/Seznam položek
    • [1, 2, 3], ["blue", "red", "green"]
  • Object
    • Objekt s popisem vlastností
    • {"key": "value"}{"name": "Pavel", "age": 31}

Přístup k hodnotám

K hodnotám v JSONu lze přistupovat přes tečkovou notaci, tedy pokud budeme mít například tento JSON:

{
  "color": "blue",
  "doorCount": 3,
  "brand": "Toyota",
  "engine": {
  	"fuel": "petrol",
    "engineCapacity": 1.3,
    "cylinderCount": 4
  },
  "assets": ["AC", "GPS"]
}

a budeme chtít zjistit obsah motoru, tak toho docílíme tímto řádkem:

car.engine.engineCapacity

pokud budeme chtít zjistit jaká je první položka v seznamu doplňků, tak toho docílíme tímto řádkem:

car.assets[0]

První položku získáme přístupem do indexu 0, protože JavaScript čísluje pole od 0