JSON er et tekst­ba­se­ret da­ta­for­mat, der ofte bruges til at overføre data mellem for­skel­li­ge systemer på grund af sin enkle struktur. Det koder in­for­ma­tion som nøgle-værdipar, som næsten alle pro­gram­me­rings­sprog kan behandle. Formatet er også populært på grund af sin læsbarhed, brede kom­pa­ti­bi­li­tet og nemme im­ple­men­te­ring.

Hvad er JSON?

JSON er et plat­for­mu­af­hæn­gigt da­ta­for­mat, der bruges til trans­mis­sion og lagring af struk­tu­re­re­de data. Formatet stammer fra Ja­va­Script, men er fuld­stæn­dig selv­stæn­digt, hvilket betyder, at det ikke er bundet til Ja­va­Script. Det un­der­støt­tes af næsten alle pro­gram­me­rings­sprog. JSON er et rent tekst­for­mat, der er let for mennesker at læse og skrive og effektivt for maskiner at analysere.

I mange tilfælde fo­re­træk­ker udviklere JSON-formatet primært fordi det letter ud­veks­ling af data på tværs af tek­no­lo­gi­er. Når en bruger f.eks. køber et stykke tøj i en on­li­ne­bu­tik, overføres ind­tast­nin­ger­ne til serveren i JSON-format. Serveren behandler dataene og sender svaret tilbage i JSON-format, hvilket sikrer pro­blem­fri da­ta­ud­veks­ling.

Det centrale kendetegn ved JSON er dets klarhed: da­ta­for­ma­tet bruger en reduceret og kon­si­stent notation til at præ­sen­te­re in­for­ma­tion på en præcis, men for­stå­e­lig måde. Det er også baseret på Unicode, hvilket gør det nemt at håndtere in­ter­na­tio­na­le tegn og spe­ci­al­sym­bo­ler. Det betyder, at JSON tilbyder en slank og uafhængig løsning til moderne web- og API-kom­mu­ni­ka­tion.

Hvordan fungerer JSON?

Et JSON-dokument skal følge en fast syntaks: Det begynder altid med en åbende krøllet parentes { og slutter med en lukkende krøllet parentes }. Inden for de krøllede pa­ren­te­ser defineres in­di­vi­du­el­le da­ta­fel­ter ved hjælp af navn-værdipar. Disse begynder med navnet, ef­ter­fulgt af et kolon : og værdien. JSON un­der­støt­ter for­skel­li­ge datatyper, hver med sine egne at­tri­but­ter og adfærd til lagring af variabler. Disse omfatter:

  • Objekter: En JSON-ob­jek­t­da­ta­ty­pe består af navn-værdipar ind­kaps­let i krøllede pa­ren­te­ser. Nøglerne skal være unikke strenge adskilt af kommaer.
  • Arrays: En array-datatype re­præ­sen­te­rer en ordnet samling af værdier. Disse skal være af typen Objekt, Array, Streng, Tal, Boolsk eller Null.
  • Strings: I JSON bruges strings ofte til at gemme og overføre tekst­ba­se­re­de data såsom navne eller adresser. Strings er omgivet af dobbelte an­før­sels­tegn ”” og tillader hele Unicode-tegn­sæt­tet.
  • Boolean: Boolean-værdier kan være enten true eller false. De behandles som strenge, men er ikke omgivet af an­før­sels­tegn.
  • Number: Denne datatype bruges til at gemme numeriske værdier til for­skel­li­ge formål, såsom da­ta­a­na­ly­se eller be­reg­nin­ger. JSON un­der­støt­ter både positive og negative tal samt decimaler.
  • Null: Når en variabel er tom, kan dette udtrykkes ved at tildele den Null.

Følgende eksempel il­lu­stre­rer struk­tu­ren i et JSON-datasæt:

{ 
    "dataField1": "Value", 
    "dataObject": { 
        "field1": 123, 
        "field2": "Text", 
        "field3Array": ["Value1", "Value2", "Value3", "Value4"] 
    } 
}
json

Hvad er fordelene ved JSON?

JSON scorer højt på mange områder takket være sin enkelhed og ef­fek­ti­vi­tet, hvilket gør det til det fo­re­truk­ne format for mange moderne ap­pli­ka­tio­ner. Følgende oversigt viser de vigtigste fordele ved JSON:

  • Let og plads­be­spa­ren­de: JSON eli­mi­ne­rer unød­ven­di­ge markup-elementer og bruger kun få struk­tu­rel­le tegn, hvilket reducerer la­ger­be­ho­vet og trans­mis­sions­vo­lu­me­net.

  • Let læ­se­lig­hed: JSON’s klare syntaks kan forstås uden spe­ci­a­li­se­ret eks­per­ti­se. Selv større datasæt forbliver or­ga­ni­se­re­de, hvilket gør fejl­find­ing lettere.

  • Bred un­der­støt­tel­se: Uanset om det er Ja­va­Script, Python, Java, PHP eller C# – JSON un­der­støt­tes indbygget af næsten alle pro­gram­me­rings­sprog og rammer eller leveres via stan­dard­bi­bli­o­te­ker. Mange NoSQL-databaser, såsom MongoDB eller CouchDB, gemmer do­ku­men­ter direkte i JSON-format eller et JSON-lignende da­ta­for­mat, hvilket reducerer kon­ver­te­rings­ar­bej­det.

  • Fleksibel da­ta­mo­del­le­ring: Un­der­støt­tel­sen af ind­lej­re­de struk­tu­rer gør det muligt at kortlægge komplekse og hie­rar­ki­ske da­ta­mo­del­ler uden problemer.

Hvad bruges JSON typisk til?

På grund af sine alsidige fordele bruges JSON-da­ta­for­ma­tet i stort set alle områder inden for softwa­re­ud­vik­ling. Klassiske an­ven­del­ses­om­rå­der omfatter:

  • Plat­for­mu­af­hæn­gig da­ta­over­før­sel: JSON er ideelt til ud­veks­ling af data mellem for­skel­li­ge systemer og pro­gram­me­rings­sprog.
  • Op­ret­tel­se af dynamiske JSON-data fra bru­ger­in­put: JSON er frem­ra­gen­de til at gemme mid­ler­ti­di­ge, bru­ger­ge­ne­re­re­de op­lys­nin­ger på en struk­tu­re­ret måde. For eksempel er det muligt at kon­ver­te­re for­mu­lar­fel­ter på et websted direkte til et JSON-objekt og se­ri­a­li­se­re dem.
  • Kon­fi­gu­ra­tion af data til ap­pli­ka­tio­ner: Alle ap­pli­ka­tio­ner har brug for passende login-data for at kunne oprette for­bin­del­se til en database. Login-op­lys­nin­ger og log­filstien kan angives i en JSON-fil, som alle in­vol­ve­re­de parter kan bruge.
  • For­enkling af komplekse da­ta­struk­tu­rer: JSON reducerer komplekse do­ku­men­ter til væ­sent­li­ge elementer og kon­ver­te­rer dem til let læselige struk­tu­rer. Dette øger gen­nem­sig­tig­he­den af da­ta­mo­del­ler og gør adgangen til relevante op­lys­nin­ger mere ligetil.
  • Kon­fi­gu­ra­tions­fi­ler: JSON-do­ku­men­ter er nemme at søge i og redigere, hvorfor formatet ofte bruges til kon­fi­gu­ra­tions­fi­ler – især i Ja­va­Script-øko­sy­ste­mer som Node.js.

Hvad er nogle al­ter­na­ti­ver til JSON?

Selvom JSON-formatet i mange tilfælde betragtes som standard, findes der andre da­ta­for­ma­ter, der kan være endnu bedre egnet i spe­ci­fik­ke scenarier. Nogle af de mest kendte al­ter­na­ti­ver er:

  • XML (Exten­sib­le Markup Language): Før JSON blev populært, var XML det mest anvendte format til da­ta­se­ri­a­li­se­ring. Det stærkt typede og fleksible tekst­for­mat kan gemme komplekse da­ta­struk­tu­rer og metadata. Formatet har også skema-de­fi­ni­tio­ner (XSD) og trans­for­ma­tio­ner (XSLT), men det er sværere at læse end JSON.
  • YAML (YAML Ain’t Markup Language): Dette ma­skin­læs­ba­re format bruges ho­ved­sa­ge­ligt til kon­fi­gu­ra­tions­fi­ler og er en udvidelse af JSON, der un­der­støt­ter kom­men­ta­rer. YAML-formatet har en klar syntaks, men er mere komplekst at behandle og udsat for syn­taks­fejl.
  • Protobuf (Protocol Buffers): Dette er et binært da­ta­for­mat fra Google, der er kendt for sin kom­pak­t­hed og høje ef­fek­ti­vi­tet. Protobuf kræver dog skema-de­fi­ni­tio­ner. Derudover er formatet ikke læsbart for mennesker, hvilket kan kom­pli­ce­re fejl­find­ing.
Gå til ho­ved­me­nu­en