Konspekt: JSON (JavaScript Object Notation)

Mis on JSON?

JSON (JavaScript Object Notation) on kerge andmevahetusformaat, mida on lihtne genereerida ja analüüsida. JSON kasutab objektide ja massiivide struktuure, et esitada andmeid kaasaskantavalt ja loetavalt. Kuigi süntaks on pärit JavaScriptist, on JSON keelest sõltumatu ja seda toetavad kõik kaasaegsed programmeerimiskeeled. JSON on eriti populaarne REST API-de edastusvorminguna.

Mõte: Mõtle JSON-ist kui inimloetavast tekstist, mis kirjeldab andmeid võtme-väärtuse paaridena (objektid) ja järjestatud loenditena (massivid).
JSON Scructure

JSON struktuur

Pesastamine: Objektid ja massiivid võivad sisaldada teisi objekte ja massiive (piiramatu sügavus), mis võimaldab kirjeldada nii lihtsaid tabeleid kui ka keerukaid andmestruktuure.

JSON andmetüübid

Tüüp Kirjeldus Näide
string Sõnaline tekst jutumärkides "Tere, maailm"
number Täisarv või ujukomaarv 42, 3.14, -7
object Võtme-väärtuse paaride kogum looksulgudes {"nimi":"Mari","vanus":20}
array Järjestatud loend nurksulgudes [1,2,3] või [{"id":1},{"id":2}]
boolean Loogikaväärtus true, false
null Puuduv väärtus null

Näited JSON struktuurist

Kompaktne objekt

{
  "id": 1,
  "nimi": "Valve",
  "aktiivne": true
}

Ühe objekti sees on teine objekt

{
  "mang": {
    "pealkiri": "Portal 2",
    "arendaja": {
      "nimi": "Valve",
      "riik": "USA"
    }
  }
}

Mitu objekti massiivis

[
  { "id": 1, "nimi": "Aperture" },
  { "id": 2, "nimi": "Black Mesa" }
]

Objekt "Valve", mille väärtuseks on massiiv pesastatud objektidest

{
  "Valve": [
    { "mang": "Half-Life", "aasta": 1998 },
    { "mang": "Portal",     "aasta": 2007 },
    { "mang": "Dota 2",     "aasta": 2013 }
  ]
}

Töötamine JSON-iga (üldpõhimõtted)

JSON vs JavaScript: JSON nõuab topeltjutumärke nii võtmete kui stringide jaoks ({"key":"value"}). JavaScripti objektides võivad võtmed mõnikord olla ilma jutumärkideta.

Levinud vead ja parimad tavad

Levinud vead

Parimad tavad

Kokkuvõte

JSON on lihtne, inimloetav ja keeletu andmevahetusvorming, mis baseerub objektide ({}) ja massiivide ([]) struktuuril. See toetab põhilisi andmetüüpe (string, number, object, array, boolean, null) ja on tänu universaalsele toele saanud de-facto standardiks REST API-des.