JSON

 

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.

 

 

Skriv et svar