Terug naar blog

Een overzicht van het JSON-formaat voor het delen van gegevens

Een overzicht van het JSON-formaat voor het delen van gegevens

JavaScript Object Notation (JSON kortweg en uitgesproken als de naam ‘Jason’), is een type gegevensuitwisselingsformaat. Zoals de naam al aangeeft, stamt JSON af van JavaScript, maar het is niet de enige code-eigenaar die het gebruik ervan toestaat. In feite hebben veel andere programmeertalen het beschikbaar voor gebruik, waaronder Ruby, PHP, Python, en Java.

Wanneer het op zichzelf staat, gebruikt het JSON-bestand de .json extensie, maar omdat het een formaat is dat gemakkelijk kan worden overgedragen tussen een webserver en een client (of browser), kan het ook worden gedefinieerd als een .html formaat. In dit geval kan het een object zijn dat aan een variabele is toegewezen of verschijnen als een JSON-tekenreeks binnen aanhalingstekens.

JSON is een goed alternatief voor XML omdat het beter leesbaar is en minimale opmaak vereist. Deze handleiding leert u over de gegevens die in JSON-bestanden kunnen worden opgeslagen, evenals de algemene syntaxis en structuur van het formaat.

Structuur & syntaxis

Een JSON-object is een gegevensformaat dat accolades gebruikt om sleutel-waarde-paren weer te geven. Wanneer u met JSON werkt, zult u het meestal in .json-bestanden zien, maar in de context van een programma kan het ook bestaan als een string of een JSON-object.

Hier is een voorbeeld van hoe een JSON-object eruitziet:

json object

Hoewel dit een vrij kort voorbeeld is, en JSON-objecten veel langer kunnen zijn, laat het nauwkeurig zien hoe het formaat doorgaans is opgebouwd met twee accolades aan elk uiteinde, met sleutel-waarde-paren die de ruimte ertussen vullen. Het merendeel van de gegevens in JSON is ingekapseld in een JSON-item.

Er is een dubbele punt die de sleutel-waarde-paren scheidt (“sleutel” : “waarde”). Elk van deze paren wordt door een komma gescheiden als verschillende elementen van de lijst. Dit resulteert erin dat het middelste gedeelte van een JSON-opmaak er als volgt uitziet: “sleutel” : “waarde”, “sleutel” : “waarde”, “sleutel” : “waarde”. In het bovenstaande voorbeeld is "name" : "Akshay" bijvoorbeeld het eerste sleutel-waarde-paar.

De sleutels in elk object moeten uniek zijn, kunnen als elke geldige string worden weergegeven, tussen dubbele aanhalingstekens (“sleutel”), en staan altijd aan de linkerkant van de dubbele punt. Hoewel spaties in de sleutelstrings zijn toegestaan (zoals in “first name”), maakt dit de toegang vanuit de programmering wel uitdagender. Om die reden is het in de programmeerpraktijk gebruikelijk om de spaties in sleutels te vervangen door underscores (“first_name”).

De waarden in JSON staan rechts van de dubbele punt. Op het meest basale niveau moeten dit een van de 6 specifieke gegevenstypen zijn:

  • Getallen
  • Objecten
  • Arrays
  • Strings
  • True of False (Boolean)
  • Null

In de volgende sectie worden complexere gegevenstypen van de JSON-objectarray behandeld, waarbij elke waarde die aan JSON wordt doorgegeven zijn syntaxis behoudt. Met andere woorden, strings blijven tussen aanhalingstekens staan, terwijl numerieke waarden dat niet doen.

Het JSON-formaat wordt volgens de conventie meestal in een indeling met meerdere regels weergegeven. Het kan echter ook op één regel worden geformatteerd:

single line json

Dit type opmaak komt vaker voor bij een JSON-string of binnen een ander bestandstype. Bij het werken met grote datasets maakt het uitschrijven van de dubbele punten en sleutel-waarde-paren op afzonderlijke regels de lijst beter leesbaar voor het menselijk oog, omdat JSON de scheidende hulp van witruimtes mist:

json object

Hoewel het JSON-object op JavaScript lijkt, is het belangrijk om in gedachten te houden dat het verschillende formaten zijn. Hoewel JavaScript het gebruik van functies toestaat, doet JSON dat niet. Wat JSON zo waardevol maakt, is de compatibiliteit tussen verschillende talen, waardoor alle programmeerplatforms het kunnen interpreteren.

Tot nu toe hebben we alleen naar het JSON-formaat in zijn eenvoudigste vorm gekeken, maar het kan zich hiërarchisch en op een complexere manier ontwikkelen als het geneste objecten en arrays bevat. In het volgende gedeelte kijken we naar geavanceerdere JSON.

Complexe JSON-typen gebruiken

Naast geneste arrays kan JSON ook geneste objecten opslaan. Deze objecten en arrays worden overgedragen als waarden voor sleutels, en ze worden gekoppeld aan sleutels om sleutel-waarde-paren te vormen.

  • Vorming van geneste objecten

In het volgende users.json bestandsafbeelding, er is een genest JSON-object doorgegeven voor elk van de vier gebruikers (“akshay”, “sam”, “Andrew”, “James”). Elke gebruiker bezit zijn eigen geneste sleutels (“location” en “username”):

nested

Het gemarkeerde gedeelte vertegenwoordigt een voorbeeld van het eerste geneste object. Accolades worden in het bovenstaande voorbeeld gebruikt om een genest JSON-object te maken met een bijbehorende gebruikersnaam en positiegegevens voor elk van de vier gebruikers. Bij het gebruiken van objecten worden komma's gebruikt om items te onderscheiden op basis van het specifieke gebruikerskenmerk.

  • Vorming van geneste arrays

Javascript-arrays die als waarde worden doorgegeven, kunnen ook worden gebruikt om gegevens binnen de JSON-indeling te nesten. Dit wordt gedaan door gebruik te maken van [ ] (rechte haken) aan het einde van arraytypen, waarbij de arrays gestructureerde lijsten zijn met unieke gegevenstypen erin:

array

In het gemarkeerde gedeelte van de bovenstaande voorbeelden worden de 2 socialemediaprofielen en 2 websitelinks van Akshays’s elk gebruikt binnen een array van geneste informatie, vanwege de aanwezigheid van de rechte haken. Door nesten op deze manier in JSON toe te passen, kunnen we meer veelzijdigheid bereiken bij het werken met hiërarchische en complexe gegevensinhoud.

  • XML-vergelijking

Extensible Markup Language (XML) biedt een methode voor het opslaan van gegevens die zowel door machines als door mensen kunnen worden gelezen. Net als JSON kan XML door veel programmeertalen worden gebruikt. In tegenstelling tot JSON bevat XML aanzienlijk meer tekst en is het daarom complexer en tijdrovender om samen te stellen. Hoewel een standaardfunctie JSON kan parseren, vereist XML een XML-specifieke parser. Bovendien kan XML geen gebruik maken van arrays. Laten we dezelfde gegevens vergelijken die zijn opgemaakt in XML versus JSON:

xml vs json

XML vereist aanzienlijk meer tekst en neemt meer ruimte in beslag. Het vereist ook eindtags, terwijl JSON veel compacter en eenvoudiger is geordend. Degenen die bekend zijn met HTML zullen waarschijnlijk de gelijkenis opmerken in het gebruik van tags door XML.

Voordat u beslist welke indeling u wilt gebruiken, helpt het altijd om de reikwijdte en behoeften van het project te evalueren. JSON is minder uitgebreid, slanker en snel te gebruiken voor AJAX-apps en andere situaties. Het projecttype helpt om de meest geschikte gegevensstructuren te verduidelijken.

Meer leren over JSON

JSON is een veelzijdige en natuurlijke indeling die in meerdere programmeertalen kan worden geïmplementeerd. U kunt de volledige lijst met ondersteunde talen vinden op de “Introducing JSON”-pagina. Daarnaast is informatie over parseren en compatibiliteit te vinden in de “iQuery-bibliotheek.”

Uiteindelijk zult u waarschijnlijk niet al te vaak pure JSON schrijven. In plaats daarvan haalt u het uit gegevensbronnen of vertaalt u andere gegevensbestanden naar JSON. Met behulp van de open-source tool Mr. Data Converter, kunt u CSV- of door tabs gescheiden gegevens uit spreadsheetprogramma's vertalen naar JSON. Met het onder Creative Commons gelicentieerde utilities-online.info-platform kunt u XML naar JSON vertalen en vice versa. Wanneer u geautomatiseerde software gebruikt, controleer dan de rapporten om eventuele redundantie te elimineren.

U kunt ook JSONLint gebruiken om uw JSON te verifiëren en JFiddle om het te evalueren in een webontwikkelingscontext wanneer u andere typen naar de JSON-indeling converteert.

Conclusie

Met de toenemende API-ondersteuning (inclusief Twitter API) is JSON een lichtgewicht gegevensindeling die eenvoud bevordert bij het bewerken, opslaan en delen van gegevens. Omdat u niet uw eigen .json-bestanden zult genereren, maar deze eerder van andere kanalen zult ontvangen, is het belangrijker om na te denken over hoe u JSON in uw programma's kunt gebruiken dan over de structuur ervan.

Hier zijn verdere bronnen van onze blog die u zullen helpen programmeren met JavaScript:

Veel computerplezier!

author

Akshay Nagpal

Auteur · CloudSigma

Preslav Dobrev is een creatief ontwerper bij CloudSigma, met de nadruk op een consistente bedrijfsidentiteit door middel van traditionele en innovatieve marketingkanalen. Hij is bedreven in het samenvoegen van artistieke visie met strategische marketing om impactvolle merkverhalen te creëren.

Reacties

Nog geen reacties. Wees de eerste.