TOP
Olaf
Olaf
12 maart 2012

mrt 12 Third-party koppeling: JSON of XML

Wij bouwen webwinkels (e-commerce en m-commerce) en moeten daarvoor vaak koppelingen maken met systemen van 3e partijen (third-parties). De snelheid van deze koppelingen bepaalt voor een steeds groter deel het succes van de (mobiele) website. Omdat wij bezig zijn met innoverend ontwikkelen, zijn wij automatisch bezig met het kijken naar manieren om snellere koppelingen te realiseren.

Iedereen is bekend met het standaard XML formaat, maar sinds korte tijd maken wij ook gebruik van het JSON formaat. De reden dat wij gekozen hebben om gebruik te maken van JSON koppelingen is dat deze vele malen sneller gelezen kunnen worden. Voor de klant is het vaak niet duidelijk wat het verschil is tussen een XML en JSON koppeling. In principe kan er met beide documenten gewerkt worden. Toch is er daadwerkelijk een verschil, namelijk de snelheid waarmee er door producten gezocht kan worden. Het parsen van JSON is vele malen sneller dan het parsen van XML. Dit heeft te maken met de manier waarop de documenten worden opgebouwd. Wat JSON toont is namelijk aanzienlijk kleiner dan wat door XML getoond wordt.

Dat JSON aanzienlijk kleiner is dan XML, heeft allemaal met de opbouw van het document te maken. Bij XML wordt alles opgebouwd in elementen waardoor het document al snel groot wordt en dus traag. Dit is anders geregeld bij JSON: JSON is namelijk opgebouwd uit arrays. Een array is te beschrijven als “een groep variabelen die bij elkaar horen. Te vergelijken met een ladenkast, waarbij elke lade een variabele is”. Het voordeel is dat het gestructureerder is dan bij XML, kleiner en dus sneller te lezen is. Een ander voordeel is dat JSON door de gestructureerde opbouw OOP is. Dit betekent dat het Object georiënteerd is. Hierdoor sluit JSON naadloos aan bij talen als Java en C#. Wij programmeren in de taal C# en maken gebruik van het ASP.NET platform, waarover velen zeggen dat JSON niet eenvoudig te gebruiken is. Toch is dit anders, er zijn libraries waarmee een JSON response omgezet wordt naar objecten, waardoor het naadloos aansluit op het entity-framework wat op dezelfde wijze omgaat met objecten.

Veel third-party leveranciers hebben alleen XML koppelingen liggen en zijn vaak niet ervaren met de mogelijkheden die een JSON koppeling biedt. Het is voor de klant van belang om na te gaan bij hun third-party leverancier of het mogelijk is een JSON koppeling te leveren. Hiermee kan een klant namelijk het verschil maken op de markt met hun (mobiele) website. Door het gebruik van JSON wordt het zoeken vele malen sneller waardoor de gebruikersexperience omhoog gaat. Maar ook als er een feed gemaakt moet worden voor een Affiliate partij is het wijsheid om dat in JSON te doen, het is veel lichter zodat de database performance van de website erop vooruit gaat.

Een gebruiker die een fijne gebruikersexperience ervaart, keert eerder terug naar de desbetreffende website. Omdat wij snelle oplossingen willen bieden voor web maar ook mobiel, raden wij de third-party leveranciers van klanten sterk aan om de data op te leveren in JSON. Het verschil wordt vooral duidelijk wanneer er gebruik wordt gemaakt van een 3G netwerk. Dit is een traag netwerk vergeleken met de wifi verbinding die men op het werk of thuis heeft liggen. Vaak wordt er gebruik gemaakt van een 3G verbinding in de trein, auto, tijdens het shoppen etc. Op dat moment wil men snel het gewenste product bestellen en telt elke (milli-)seconde.