Gids voor JSON-schema

JSON-schema

Voordat we ingaan op JSON Schema, is het belangrijk om het verschil tussen JSON en JSON Schema te kennen.

JSON

JSON is de afkorting van JavaScript Object Notation en is een taalonafhankelijk gegevensformaat dat API's gebruiken om verzoeken en antwoorden te verzenden. JSON is eenvoudig te lezen en te schrijven voor zowel mensen als machines. JSON is een op tekst gebaseerd formaat dat niet taalgebonden is (taalonafhankelijk).

JSON-schema

JSON Schema is een handig hulpmiddel voor het verifiëren van de JSON-gegevensstructuur. Gebruik een op JSON gebaseerde indeling om de structuur van JSON op te geven. Het doel is ervoor te zorgen dat JSON-gegevens acceptabel zijn. De conventie voor de JSON-gegevens van onze applicatie kan worden gedefinieerd met behulp van een schema.

De JSON Schema-specificatie bestaat uit drie hoofdsecties:

JSON hyperschema:

JSON Hyper-Schema is een JSON Schema-taal die kan worden gebruikt om JSON-documenten te labelen met hyperlinks en instructies voor het verwerken en wijzigen van externe JSON-bronnen via op tekst gebaseerde omgevingen zoals HTTP. Klik hier voor meer informatie over JSON Hyper-Schema.

JSON Schema Kern:

Het is een set regels voor het labelen en valideren van JSON-documenten. 

JSON Schema Kern:

  • Beschrijft het gegevensformaat dat u momenteel hebt. 
  • Valideert gegevens die kunnen worden gebruikt bij geautomatiseerd testen. 
  • Het waarborgen van de juistheid van gegevens die door klanten worden verstrekt.  
  • Biedt leesbare documentatie voor zowel mensen als machines. 

JSON-schemavalidatie:

Validatie op basis van JSON Schema stelt grenzen aan de structuur van instantiegegevens. Daarna alle zoekwoorden die geen bewering bevatten informatie, zoals beschrijvende metadata en gebruiksindicaties, worden toegevoegd aan een instantiepositie die voldoet aan alle aangegeven beperkingen. 

De JSON Schema Validator-tool van Newtonsoft is een tool die u gratis rechtstreeks in uw browser kunt gebruiken. U kunt deze tool gebruiken om de structuur van uw JSON-schema te testen. Deze pagina bevat bedieningselementen en uitleg om u op weg te helpen. Op die manier is het gemakkelijk om te zien hoe u uw JSON-structuur kunt verbeteren.

We kunnen ons JSON-object controleren met behulp van de JSON Schema Validation Tool:

JSON Validator foutloos

We hebben leeftijdsvalidatie (minimum = 20 en maximum = 40) zoals weergegeven in de bovenstaande afbeelding. Er zijn geen fouten gevonden.

JSON-validator met fout

Er werd een fout weergegeven als de leeftijdsvalidatie onjuist was ingevoerd.

De creatie van een JSON-schema

Laten we eens kijken naar een voorbeeld van JSON Schema om te zien waar we het over hebben. Een basis JSON-object dat een productcatalogus beschrijft, is als volgt:

JSON-voorbeeld

Het JSON-schema kan als volgt worden geschreven:

JSON-schemaresultaat

Een JSON-schema is een JSON-document en dat document MOET een object zijn. Sleutelwoorden zijn objectleden/attributen gespecificeerd door JSON Schema. "Sleutelwoorden" in JSON Schema verwijzen naar het "sleutel"-gedeelte van een sleutel/waarde-combinatie in een object. Het schrijven van een JSON-schema omvat grotendeels het toewijzen van een bepaald "trefwoord" aan een waarde binnen een object. 

Laten we de zoekwoorden die we in ons voorbeeld gebruikten eens nader bekijken: 

Het JSON-schema waaraan het schema van de resource voldoet, wordt door dit kenmerk opgeschreven. Dit schema is geschreven volgens de drafts v4-standaard, zoals gespecificeerd door de "$ schema" sleutelwoord. Dit voorkomt dat uw schema terugvalt naar de huidige versie, die al dan niet compatibel is met oudere.

De "titel"En"beschrijving” trefwoorden zijn slechts verklarend; ze leggen geen beperkingen op aan de gegevens die worden gecontroleerd. Deze twee sleutelwoorden beschrijven het doel van het schema: het beschrijft een product.

De " type dan: ” sleutelwoord definieert de eerste randvoorwaarde van onze JSON-gegevens; het moet een JSON-object zijn. Als we het type niet instellen voor alle schema's, zou de code niet werken. Enkele veel voorkomende typen zijn "nummer" "Boolean" "integer" "null" "object" "array" "string".

 

JSON Schema wordt ondersteund door de volgende bibliotheken:

 

Taal

Bibliotheek

C

WJElement

Python

jschon

PHP

Beschrijving Json Schema

JavaScript

bijv

Go

gojsonschema

Kotlin

Medeia-validator

Ruby

JSONSchemer

JSON (syntaxis)

Laten we een korte blik werpen op de fundamentele syntaxis van JSON. JSON-syntaxis is een subset van JavaScript-syntaxis die de volgende elementen bevat:

  • Er worden naam/waarde-paren gebruikt die gegevens vertegenwoordigen.
  • Objecten worden tussen accolades geplaatst en elke naam wordt voorafgegaan door een ':' (dubbele punt), met waardeparen gescheiden door “,” (komma).
  • Waarden worden gescheiden door “,” (komma) en arrays worden tussen vierkante haken geplaatst.
Voorbeeld van JSON-syntaxis

De volgende twee datastructuren worden ondersteund door JSON:

  • Geordende lijst met waarden: Het kan een array, een lijst of een vector zijn.
  • Verzameling van naam/waarde-paren: Verschillende computertalen ondersteunen deze gegevensstructuur.

 

JSON (object)

Een JSON-schema is een JSON-object dat het type en de structuur van een ander JSON-object schetst. Een JavaScript-objectexpressie kan een JSON-object vertegenwoordigen in JavaScript-runtime-omgevingen. Enkele voorbeelden van geldige schema-objecten zijn als volgt:

Schema

Lucifers

{}

elke waarde

{type: 'voorwerp'}

een JavaScript-object

{type: 'nummer'}

een JavaScript-nummer

{ type: 'tekenreeks'}

een JavaScript-string

bv:

Een nieuw object maken dat leeg is:

var JSON_Obj = {};

Nieuwe objectcreatie:

var JSON_Obj = nieuw object()

JSON (Vergelijking met XML)

JSON en XML zijn taalonafhankelijke, door mensen leesbare formaten. In scenario's uit de echte wereld kunnen ze zowel creëren, lezen als decoderen. Op basis van de volgende criteria kunnen we JSON vergelijken met XML.

Ingewikkeldheid

Omdat XML complexer is dan JSON, geven programmeurs de voorkeur aan JSON.

Gebruik van arrays

XML wordt gebruikt om gestructureerde gegevens uit te drukken; XML ondersteunt echter geen arrays, maar JSON wel.

Parsing

JSON wordt geïnterpreteerd met behulp van de eval-functie van JavaScript. eval retourneert het beschreven object bij gebruik met JSON.

 

Voorbeeld:

 

JSON

XML

{

   "bedrijf": Ferrari,

   "naam": "GTS",

   "prijs": 404000

}

 

 

Ferrari 

 

GTS 

 

404000 

 

Voordelen van JSON-schema's

JSON is ontworpen om af te buigen in een door mensen en machines leesbare taal. Zonder enige fijnafstemming kan het echter geen van beide zijn. JSON Schema heeft het voordeel dat het JSON begrijpelijker maakt voor zowel machines als mensen.

Door JSON Schema te gebruiken, zijn ook verschillende updates aan de clientzijde niet meer nodig. Het maken van een lijst met algemene HTML-codes en deze vervolgens aan de clientzijde implementeren, is een typische maar onnauwkeurige methode om aan de clientzijde te bouwen. API apps. Dit is echter niet de beste strategie, omdat wijzigingen aan de serverzijde ervoor kunnen zorgen dat bepaalde functionaliteiten niet goed werken.

Het belangrijkste voordeel van JSON Schema is de compatibiliteit met verschillende programmeertalen, evenals de nauwkeurigheid en consistentie van de validatie.

JSON-schema ondersteunt een breed scala aan browsers en besturingssystemen, daarom kost het niet veel moeite om apps die in JSON zijn geschreven, allemaal browsercompatibel te maken. Tijdens de ontwikkeling overwegen ontwikkelaars verschillende browsers, hoewel JSON al de mogelijkheden heeft.

JSON is de meest efficiënte manier om gegevens van elke omvang te delen, inclusief audio, video en andere media. Dit komt door het feit dat JSON data opslaat in arrays, wat datatransmissie makkelijker maakt. Als gevolg hiervan is JSON het beste bestandsformaat voor online API's en ontwikkeling.

Naarmate API's vaker voorkomen, is het logisch om aan te nemen dat validatie en testen van API's steeds belangrijker zullen worden. Het is ook realistisch om te verwachten dat JSON in de loop van de tijd waarschijnlijk niet veel eenvoudiger zal worden. Dit houdt in dat het hebben van een schema voor uw gegevens alleen maar belangrijker wordt naarmate de tijd verstrijkt. Omdat JSON het standaard bestandsformaat is voor het werken met API's, is JSON Schema een goed alternatief voor degenen die met API's werken.

Google en de incognitomythe

Google en de incognitomythe

Google en de incognitomythe Op 1 april 2024 stemde Google ermee in een rechtszaak te schikken door miljarden gegevensrecords te vernietigen die in de incognitomodus waren verzameld.

Lees meer »