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: Johan Falkenjack
Senast uppdaterad: 2024-07-26