JSON
JavaScript Object Notation
JSON (JavaScript Object Notation) er et letvægts, tekstbaseret dataformat, der bruges til at strukturere og udveksle data mellem forskellige systemer i form af nøgle-værdi-par og ordnede lister af værdier. Formatet er afledt af syntaksen i JavaScript, men er i praksis sprogneutralt, da stort set alle moderne programmeringssprog kan læse og skrive JSON. Det gør formatet velegnet til at flytte strukturerede data mellem en server og en webapplikation, eller mellem to systemer der ikke nødvendigvis er skrevet i samme programmeringssprog.
Et typisk eksempel er en webbutik, hvor oplysninger om en vare – navn, pris og om den er på lager – sendes fra serveren til browseren som en lille JSON-tekst, fx {"navn": "Kaffekop", "pris": 89, "paaLager": true}. Browseren kan derefter omdanne teksten til et almindeligt objekt i JavaScript og bruge værdierne direkte på siden. Denne enkle, forudsigelige struktur er en af hovedgrundene til, at JSON i dag er et af de mest anvendte formater til dataudveksling på internettet.
Sådan er JSON bygget op
JSON-syntaksen bygger på nogle få, faste regler. Data angives som navn/værdi-par, hvor navnet altid står i dobbelte anførselstegn, følges af et kolon og derefter selve værdien. Objekter samles inden for krøllede parenteser { }, mens ordnede lister af værdier – kaldet arrays – samles inden for kantede parenteser [ ]. En værdi kan være en streng, et tal, en boolean (true/false), et nyt objekt, et array eller null.
Et lidt større eksempel kan se ud som en liste af medarbejdere med fornavn og efternavn, hvor selve listen er et array af objekter. Fordi strukturen er så konsekvent, kan næsten ethvert programmeringssprog læse (parse) og generere JSON uden særlige tilpasninger, hvilket er en vigtig del af formatets udbredelse.
Historien bag JSON
Crockford formulerede JSON i 2001, mens han arbejdede med en række webapplikationer der brugte Ajax-værktøjer til webudvikling, herunder JavaScript, XML og HTML. Baggrunden var et ønske om en enklere måde at udveksle data mellem browser og server på uden brug af browser-plugins som Flash eller Java-applets. Crockford opfattede det eksisterende alternativ, XML, som unødigt tungt til formålet, og udviklede i stedet et format der byggede direkte på den syntaks, JavaScript allerede brugte til objekter. Efter at RFC 4627 havde været tilgængelig som den “informative” specifikation siden 2006, blev JSON først formelt standardiseret i 2013 som ECMA-404. Siden er formatet også blevet beskrevet i RFC 8259 fra 2017, som stadig er i overensstemmelse med ECMA-404-standarden. Navnet Douglas Crockford er i dag tæt knyttet til formatet, fordi han både gav det sit navn, beskrev en sikker delmængde af JavaScript-syntaksen til dataformål og var med til at udbrede det til et bredt udviklerpublikum.
Hvor og hvem bruger JSON
JSON bruges i dag i stort set alle dele af moderne softwareudvikling. Det mest almindelige anvendelsesområde er API’er, hvor en server sender data til en klient (fx en app eller hjemmeside) i JSON-format, og klienten sender tilsvarende forespørgsler tilbage i samme format. Udviklere bruger også JSON til konfigurationsfiler, hvor indstillinger for en applikation – fx databaseforbindelser eller miljøvariabler – gemmes i en letlæselig struktur. Nogle NoSQL-databaser gemmer desuden dokumenter direkte i JSON eller et JSON-lignende format, hvilket gør overgangen mellem lagring og applikationslogik enklere. Formatet spiller også en rolle uden for den klassiske webudvikling. Når søgemaskiner og websites skal beskrive indhold i et maskinlæsbart format, sker det ofte via structured data (schema markup), som typisk indlejres på siden netop som JSON. Inden for kunstig intelligens bruger mange systemer også JSON som transportformat – fx når en AI-agent skal udveksle strukturerede beskeder med et andet system, eller når kommunikationen følger en standard som Model Context Protocol (MCP), der bygger videre på JSON-baserede beskedformater.
JSON sammenlignet med XML og andre formater
JSON opstod delvist som et modsvar til XML, og de to formater bliver ofte sammenlignet. JSON er generelt mere kompakt og hurtigere at parse, fordi det har færre strukturelle tegn og ikke kræver afsluttende tags som XML. XML kan til gengæld håndtere mere komplekse dokumentstrukturer og har etablerede standarder for skemavalidering og transformation, hvilket stadig gør det relevant i visse virksomhedssystemer. Andre formater som YAML og Protocol Buffers bruges også i konfigurationsfiler og datalagring, men JSON forbliver ofte førstevalget, når data skal udveksles mellem webtjenester på en enkel og bredt understøttet måde.