Göm meny

JSON (JavaScript Object Notation)

JSON är ett textbaserat dataformat som används väldigt flitigt idag. JSON står för “JavaScript Object Notation” och även om det har sitt ursprung i programmeringsspråket JavaScript, så används det inte enbart av JavaScript. JSON är ett av de vanligaste formaten för informationsutbyte från/mellan webbtjänster.

JSON-formatet kan lagra data sekventiellt eller associativt, dvs precis det som vi i Python använder datatyperna list och dict till. Faktum är att det finns väldigt stora likheter mellan hur vi beskriver listor och dictionaries i kod och JSONs syntax. Nedan följer punkter en kort informell beskrivning av JSON-formatet:

  • JSON-data innehåller ett objekt.
  • Ett objekt börjar med tecknet { och slutar med tecknet }.
  • Ett objekt innehåller oordnade par av strängar och värden åtskiljda av tecknet ,
  • Ett värde kan vara något av följande: objekt, array, siffra, "true", "false" och "null".
  • En array börjar med tecknet [ och slutar med tecknet ].
  • En array är en ordnad sekvens av värden åtskiljda av tecknet ,

Exempel

Nedan är ett exempel på data i JSON-format:

{
    "name": {
        "first name": "Grace",
        "last name": "Hopper"
    },
    "birth year": 1906,
    "wikipedia": "https://en.wikipedia.org/wiki/Grace_Hopper"
}

Länk till JSON-data som används för info-skärmarna utanför Ada:

JSON och Python

Som ni säkert lagt märke till så är dataformatet JSON väldigt likt dictionaries i Python. Nycklar är dock strängar, men värdena kan vara siffror, strängar, dictionaries (det som kallas för objekt i JSON) eller listor (som kallas för arrayer i JSON).

För att jobba med JSON-data importerar man den inbyggda modulen json och sen har man tillgång till bl.a. funktionen json.load(). Funktionen json.load() tar en öppen fil som argument och returnerar ett dictionary med innehållet:

import json

# sökvägen som en sträng
filepath = "./data/kalas.json"

# öppna filen
file = open(filepath)

# använd json.load() för att läsa in filinnehåll till ett dictionary
data = json.load(file)

# stäng den öppna filen
file.close()

Enklare utforskning av JSON-data

Ibland kan det vara väldigt mycket text att orientera sig i när man har JSON-data. Webbplatsen JSON Viewer (https://codebeautify.org/jsonviewer) kan användas för att göra det lättare att titta på JSON-data eftersom den tillhandahåller ett gränssnitt där man kan fälla ut och fälla in olika delar av datat. Man kan fälla ihop delar både i textvyn på vänster sida och i trädvyn på höger sida.

För att titta på data från t.ex. https://www.ida.liu.se/~TDDE44/pokeapi/api/v2/pokemon/104/, så trycker man på knappen “Load Url”, klistrar in den URL man vill titta på och sen på “Load”.

OBS! I trädvyn finns siffror lite här och där som visar antingen index för list-element eller hur många element som finns t.ex. ett dictionary eller i en lista. Dessa siffror finns endast i gränssnittet, inte i själva JSON-datat.

Mer information

Se även


Sidansvarig: Jody Foo
Senast uppdaterad: 2021-09-13