Hvad er JSON?
JSON står for JavaScript Object Notation og er et filformat, som kan indeholde data der let kan læses og skrives i af mennesker samt let kan forstås og analyseres af computere. Filformatet er uafhængigt af et bestemt programmeringssprog, så derfor kan en JSON-fil let konverteres til andre slags filtyper uden problemer. Filnavnet for en JSON-fil forlænges med .json.
Indholdet i en JSON-fil kand indeholde to slags strukturer:
- En samling af nøgle/værdi-par – denne samling bliver ofte refereret til som object, hash table, dictionary eller record i andre programmeringssprog
- En samling af værdier i en liste – denne samling bliver ofte refereret til som list eller array i andre programmeringssprog
Disse strukturer optræder i de fleste programmeringssprog, så derfor kan man nemt konvertere indholdet i strukturerne fra et filformat eller programmeringssprog til et andet.
I JSON kan værdierne bestå af følgende datatyper:
- Tekstværdier (string) som skal stå i dobbeltanførselstegn (f.eks. “Hej”)
- Talværdier (number) som skrives uden anførselstegn (f.eks. 3)
- Boolske værdier (boolean values) som enten kan være true eller false (bemærk at boolske værdier skrives med småt forbogstav i JSON)
- null, som indikerer at der ikke er nogen værdi (bemærk at null skrives med småt forbogstav i JSON)
Hvis du er interesseret i at oprette en JSON-database, så kan du bl.a. gøre det ved hjælp af Couchbase eller MariaDB.
Nøgle/værdi-par
Et nøgle/værdi-par indeholder navnet på en nøgle og nøglens værdi. Et nøgle/værdi-par vil svare til en dictionary (dict) i Python. Indholdet i en samling af nøgle/værdi-par er omgivet af to tuborgklammer ( { } ). Et nøgle/værdi-par indsættes ved at man skriver nøglen, efterfulgt af et kolon ( : ), efterfulgt af nøglens værdi. Hvert nøgle/værdi-par er adskilt med et komma.
Følgende kodestykke er et eksempel på en samling af nøgle/værdi-par skrevet i en JSON-fil:
{ "Fornavn": "Magnus", "Efternavn": "Thomsen", "Alder": 27, "Døbt": true "Kone": null }
Værdier i en liste
En liste med værdier er omgivet af to firkantede parenteser ( [ ] ) og består af forskellige dataværdier adskilt med et komma. En liste med værdier vil svare til en liste (list) i Python.
Følgende kodestykke er et eksempel på en samling af værdier i en liste skrevet i en JSON-fil:
["Banan", "Æble", 3, false, null]
Konverter JavaScript-filer
Konverter fra JavaScript til JSON
For at konvertere data, som opbevares i en JavaScript-fil til en JSON-fil, så skal man benytte funktionen JSON.stringify().
I nedenstående kodestykke bliver variablen data oprettet i JavaScript, som indholder et objekt (et objekt svarer til en samling af nøgle/værdi-par i JSON):
var data = {"Fornavn": "Magnus", "Efternavn": "Thomsen", "Alder": 27, "Døbt": true "Kone": null};
I nedenstående kodestykke bliver variablen jsonData oprettet som indeholder objektet konverteret til en JSON-fil ved hjælp af funktionen JSON.stringify():
var jsonData = JSON.stringify(data);
jsonData indeholder nu objektet i JavaScript konverteret til en JSON-fil. JSON-filen vil ikke se anderledes ud, udover, at hele kodestykket nu vil være én lang tekstværdi:
'{"Fornavn": "Magnus", "Efternavn": "Thomsen", "Alder": 27, "Døbt": true "Kone": null}'
Konverter fra JSON til JavaScript
For at konvertere data, som opbevares i en JSON-fil til en JavaScript-fil, så skal man benytte funktionen JSON.parse().
I nedenstående kodestykke ses en JSON-fil, som indholder en samling af nøgle/værdi-par (Dette kaldes et objekt i JavaScript) der står i én lang tekstværdi:
'{"Fornavn": "Magnus", "Efternavn": "Thomsen", "Alder": 27, "Døbt": true "Kone": null}'
I nedenstående kodestykke bliver variablen javaScriptData oprettet som indeholder tekstværdien konverteret til et objekt i JavaScript ved hjælp af funktionen JSON.parse():
var javaScriptData = JSON.parse('{"Fornavn": "Magnus", "Efternavn": "Thomsen", "Alder": 27, "Døbt": true "Kone": null}');
javaScriptdata indeholder nu JSON-tekstværdien konverteret til et objekt i JavaScript.
Konverter Python-filer
For at arbejde med JSON-filer i Python skal man først importere modulet json:
import json
Konverter fra Python til JSON
For at konvertere data, som opbevares i en Python-fil til en JSON-fil, så skal man benytte funktionen json.dumps().
I nedenstående kodestykke bliver variablen data oprettet i Python, som indholder en dictionary (en dictionary svarer til en samling af nøgle/værdi-par i JSON):
data = {"Fornavn": "Magnus", "Efternavn": "Thomsen", "Alder": 27, "Døbt": true "Kone": null}
I nedenstående kodestykke bliver variablen jsonData oprettet som indeholder variablen data konverteret til en JSON-fil ved hjælp af funktionen json.dumps():
jsonData = json.dumps(data);
jsonData indeholder nu variablen data konverteret til en JSON-fil. JSON-filen vil ikke se anderledes ud, udover, at hele kodestykket nu vil være én lang tekstværdi:
'{"Fornavn": "Magnus", "Efternavn": "Thomsen", "Alder": 27, "Døbt": true "Kone": null}'
Konverter fra JSON til Python
For at konvertere data, som opbevares i en JSON-fil til en Python-fil, så skal man benytte funktionen json.loads().
I nedenstående kodestykke ses en tekstværdi fra en JSON-fil, som indholder en samling af nøgle/værdi-par (Dette kaldes en dictionary i Python). Tekstværdien opbevares i variablen x:
x =
'{"Fornavn": "Magnus", "Efternavn": "Thomsen", "Alder": 27, "Døbt": true "Kone": null}'
I nedenstående kodestykke bliver variablen PythonData oprettet som indeholder variablen x konverteret til en dictionary i Python ved hjælp af funktionen json.loads():
PythonData = json.loads(x);
Pythondata indeholder nu JSON-tekstværdien konverteret til en dictionary i Python.