Sådan er JSON bygget op
JSON står for JavaScript Object Notation og bruges til at beskrive data, så forskellige systemer kan udveksle dem. Det kan for eksempel være produktinformation fra en webshop, kontaktoplysninger fra et CRM-system eller lagerstatus fra en leverandør.
Formatet organiserer data med to centrale strukturer:
- Objekter samler nøgle/værdi-par. Nøglen navngiver en oplysning, mens værdien er selve indholdet. Objekter omgives af krøllede parenteser:
{}. - Arrays er ordnede lister af værdier, for eksempel produktkategorier eller varer i en indkøbskurv. Arrays omgives af kantede parenteser:
[].
Et JSON-objekt med produktdata kan se sådan ud:
{
"navn": "T-shirt",
"pris": 199,
"paaLager": true,
"stoerrelser": ["S", "M", "L"],
"rabatkode": null
}
Her er navn en nøgle, og "T-shirt" er dens værdi. Prisen er et tal, true betyder sand, og størrelserne står i et array. Værdien null angiver, at der ikke er nogen værdi for rabatkoden.
JSON understøtter tekststrenge, tal, boolean-værdierne true og false, null, objekter og arrays. Objekter og arrays kan ligge inde i hinanden. Derfor kan formatet også rumme en hel ordre med kundeoplysninger, leveringsadresse og flere ordrelinjer.
Hvordan bruges JSON i API’er?
Et API er en grænseflade, som gør det muligt for programmer at kommunikere. JSON er et almindeligt format for de data, programmerne sender og modtager gennem API’et.
Når en webshop skal vise et produkt, kan forløbet være:
- Webshoppens frontend – den del, kunden møder – beder serveren om produktets oplysninger.
- Serveren henter oplysningerne og sender dem tilbage som JSON.
- Frontenden læser dataene og viser produktnavn, pris og lagerstatus på siden.
JSON bestemmer altså ikke, hvordan produktet ser ud på skærmen. Det leverer dataene, som hjemmesidens kode bruger til at bygge visningen.
At omdanne data til JSON-tekst kaldes serialisering. Når modtageren læser teksten og omdanner den til datastrukturer, programmet kan arbejde med, kaldes det parsing.
JSON bruges både i API-forespørgsler og API-svar. Det er også relevant i integrationer mellem eksempelvis en webshop, et lagerstyringssystem og et CRM-system. Uden for API’er bruges formatet blandt andet til konfigurationsfiler i webprojekter.
JSON er ikke det samme som JavaScript
Navnet kommer fra JavaScript, men JSON er hverken et programmeringssprog eller begrænset til JavaScript. Det beskriver data – ikke instruktioner, som et program skal udføre.
En server skrevet i Python kan derfor sende JSON til en frontend skrevet i JavaScript. Begge systemer kan behandle formatet, selvom de bruger forskellige programmeringssprog.
JSON kan gemmes i filer med endelsen .json, men kræver ikke en fil. Dataene kan også sendes direkte mellem systemer, for eksempel som indholdet i et HTTP-svar.
Fordele og begrænsninger ved JSON
JSON er udbredt, fordi det er relativt let at læse og skrive, og fordi mange programmeringssprog har indbygget understøttelse eller biblioteker til formatet. Strukturen passer godt til sammenhængende data som produkter, kunder og ordrer.
Til gengæld skal syntaksen overholdes præcist. Nøgler og tekstværdier skal stå i dobbelte anførselstegn, og kommaer skal placeres korrekt. Et ekstra komma efter den sidste værdi kan gøre indholdet ugyldigt.
Formatet har heller ikke særlige datatyper til eksempelvis datoer eller funktioner. En dato må derfor repræsenteres som tekst eller et tal, og systemerne skal være enige om, hvordan den fortolkes.
Gyldigt JSON er ikke nødvendigvis korrekte data. En pris skrevet som "199" er eksempelvis tekst, mens 199 er et tal. Begge dele er gyldig JSON, men modtageren kan kræve et tal. Ved integrationer skal man derfor både kontrollere formatet og sikre, at felter og datatyper matcher det, API’et forventer.