Gids tot JSON-skema

JSON-skema

Voordat ons na JSON-skema gaan, is dit belangrik om die verskil tussen JSON en JSON-skema te ken.

Into

JSON is kort vir JavaScript Object Notation, en dit is 'n taalonafhanklike dataformaat wat API's gebruik om versoeke en antwoorde te stuur. JSON is maklik om te lees en te skryf vir mense en masjiene. JSON is 'n teksgebaseerde formaat wat nie aan taal gebonde is nie (Taalonafhanklik).

JSON-skema

JSON-skema is 'n nuttige hulpmiddel om JSON-datastruktuur te verifieer. Om die struktuur van JSON te spesifiseer, gebruik 'n JSON-gebaseerde formaat. Die doel daarvan is om te verseker dat JSON-data aanvaarbaar is. Die konvensie vir ons toepassing se JSON-data kan met behulp van skema gedefinieer word.

Daar is drie hoofafdelings in die JSON-skema-spesifikasie:

JSON-hiperskema:

JSON Hyper-Schema is 'n JSON-skema-taal wat gebruik kan word om JSON-dokumente te benoem met hiperskakels en instruksies vir die verwerking en verandering van eksterne JSON-hulpbronne via teksgebaseerde omgewings soos HTTP. Klik na hierdie skakel om meer te wete te kom oor JSON Hyper-Schema.

JSON-skemakern:

Dit is 'n stel reëls vir die etikettering en validering van JSON-dokumente. 

JSON-skemakern:

  • Beskryf die dataformaat wat jy tans het. 
  • Valideer data wat in outomatiese toetsing gebruik kan word. 
  • Verseker die akkuraatheid van data wat deur kliënte verskaf word.  
  • Verskaf leesbare dokumentasie vir beide mense en masjiene. 

JSON-skema-bekragtiging:

Validasie gebaseer op JSON Skema stel beperkings op die struktuur van instansie data. Daarna, enige sleutelwoorde wat nie-bewering het inligting, soos beskrywende metadata en gebruiksaanwysings, word by 'n instansieposisie gevoeg wat aan alle verklaarde beperkings voldoen. 

Newtonsoft se JSON Schema Validator-instrument is 'n instrument wat jy gratis in jou blaaier kan gebruik. U kan hierdie hulpmiddel gebruik om die struktuur van u JSON-skema te toets. Hierdie bladsy bevat kontroles en verduidelikings om jou aan die gang te kry. Op hierdie manier is dit maklik om te sien hoe om jou JSON-struktuur te verbeter.

Ons kan ons JSON-objek nagaan deur die JSON-skema-bekragtigingsinstrument te gebruik:

JSON Validator Foutvry

Ons het ouderdomsbekragtiging (minimum = 20 en maksimum = 40) soos in die figuur hierbo getoon. Daar was geen foute gevind nie.

JSON Validator met fout

Dit het 'n fout vertoon as die ouderdomsbekragtiging verkeerd ingevoer is.

Die skepping van 'n JSON-skema

Kom ons kyk na 'n voorbeeld van JSON-skema om te sien waaroor ons praat. 'n Basiese JSON-objek wat 'n produkkatalogus beskryf, is soos volg:

JSON voorbeeld

Die JSON-skema kan soos volg geskryf word:

JSON-skemaresultaat

'n JSON-skema is 'n JSON-dokument, en daardie dokument MOET 'n objek wees. Sleutelwoorde is voorwerplede/kenmerke gespesifiseer deur JSON Skema. "Sleutelwoorde" in JSON Skema verwys na die "sleutel" deel van 'n sleutel/waarde kombinasie in 'n voorwerp. Die skryf van 'n JSON-skema behels die kartering van 'n spesifieke "sleutelwoord" na 'n waarde binne 'n voorwerp vir die grootste deel. 

Kom ons kyk van naderby na die sleutelwoorde wat ons in ons voorbeeld gebruik het: 

Die JSON-skema waaraan die hulpbron se skema voldoen, word deur hierdie kenmerk neergeskryf. Hierdie skema is geskryf volgens die konsep v4-standaard, soos gespesifiseer deur die "$ skema" sleutelwoord. Dit verhoed dat jou skema terugval na die huidige weergawe, wat al dan nie versoenbaar is met ouer.

Die "titel"En"beskrywing” sleutelwoorde is net verduidelikend; hulle stel geen beperkings op die data wat nagegaan word nie. Hierdie twee sleutelwoorde beskryf die doel van die skema: dit beskryf 'n produk.

Die "tipe” sleutelwoord definieer ons JSON-data se eerste grensvoorwaarde; dit moet 'n JSON-objek wees. As ons nie tipe vir alle skemas stel nie, sal die kode nie werk nie. Sommige algemene tipes is "getal" "Boolean" "heelgetal" "nul" "voorwerp" "skikking" "string".

 

JSON-skema word deur die volgende biblioteke ondersteun:

 

Taalvoorkeur

biblioteek

C

WJElement

Python

jschon

PHP

Beskrywing Json-skema

JavaScript

ajv

Go

gojsonskema

Kotlin

Media-valideerder

Ruby

JSON Schemer

JSON (sintaksis)

Kom ons kyk kort na JSON se fundamentele sintaksis. JSON-sintaksis is 'n subset van JavaScript-sintaksis wat die volgende elemente insluit:

  • Naam/waarde-pare word gebruik wat data verteenwoordig.
  • Voorwerpe word in krullerige hakies gehou, en elke naam word gelei deur 'n ':' (dubbelpunt), met waardepare geskei deur "," (komma).
  • Waardes word geskei deur "," (komma) en skikkings word tussen vierkantige hakies gehou.
JSON-sintaksis voorbeeld

Die volgende twee datastrukture word deur JSON ondersteun:

  • Geordende lys van waardes: Dit kan 'n skikking, 'n lys of 'n vektor wees.
  • Versameling van naam/waarde pare: Verskillende rekenaartale ondersteun hierdie datastruktuur.

 

JSON (voorwerp)

'n JSON-skema is 'n JSON-objek wat die tipe en struktuur van 'n ander JSON-voorwerp uiteensit. 'n JavaScript-objekuitdrukking kan 'n JSON-objek in JavaScript-looptydomgewings verteenwoordig. Enkele voorbeelde van geldige skema-objekte is soos volg:

Schema

Pasmaats

{}

enige waarde

{ tipe: 'objek' }

'n JavaScript-objek

{ tipe: 'nommer' }

'n JavaScript-nommer

{ tipe: 'string'}

'n JavaScript-string

bv:

Maak 'n nuwe voorwerp wat leeg is:

var JSON_Obj = {};

Nuwe voorwerp skepping:

var JSON_Obj = nuwe voorwerp()

JSON (Vergelyking met XML)

JSON en XML is taalonafhanklike mens-leesbare formate. In werklike scenario's kan hulle beide skep, lees en dekodeer. Gebaseer op die volgende kriteria, kan ons JSON met XML vergelyk.

Kompleksiteit

Omdat XML meer kompleks is as JSON, verkies programmeerders JSON.

Gebruik van skikkings

XML word gebruik om gestruktureerde data uit te druk; XML ondersteun egter nie skikkings nie, maar JSON wel.

parsing

JSON word geïnterpreteer met behulp van JavaScript se eval-funksie. eval gee die beskryf voorwerp terug wanneer dit met JSON gebruik word.

 

voorbeeld:

 

Into

XML

{

   "maatskappy": Ferrari,

   "naam": "GTS",

   "prys": 404000 XNUMX

}

 

 

Ferrari 

 

GTS 

 

404000 XNUMX 

 

JSON Skema voordele

JSON is ontwerp om te deflekteer in 'n mens- en masjienleesbare taal. Sonder 'n mate van verfyning kan dit egter nie een wees nie. JSON-skema het die voordeel om JSON meer verstaanbaar te maak vir beide masjiene en mense.

Die gebruik van JSON-skema verwyder ook die behoefte aan verskeie kliënt-kant-opdaterings. Om 'n lys van algemene HTML-kodes te maak en dit dan aan die kliëntkant te implementeer is 'n tipiese maar onakkurate metode om kliëntkant te bou API toepassings. Dit is egter nie die beste strategie nie, want veranderinge aan die bedienerkant kan veroorsaak dat sekere funksies wanfunksioneer.

Die grootste voordeel van JSON-skema is die versoenbaarheid daarvan met 'n verskeidenheid programmeertale, sowel as die akkuraatheid en konsekwentheid van validering.

JSON-skema ondersteun 'n wye verskeidenheid blaaiers en bedryfstelsels, daarom verg programme wat in JSON geskryf is nie veel moeite om hulle almal blaaierversoenbaar te maak nie. Tydens ontwikkeling oorweeg ontwikkelaars verskeie blaaiers, hoewel JSON reeds die vermoëns het.

JSON is die doeltreffendste manier om data van enige grootte te deel, insluitend oudio, video en ander media. Dit is te wyte aan die feit dat JSON data in skikkings stoor, wat data-oordrag makliker maak. Gevolglik is JSON die beste lêerformaat vir aanlyn API's en ontwikkeling.

Soos API's meer algemeen word, is dit logies om te aanvaar dat API-validering en -toetsing al hoe belangriker sal word. Dit is ook realisties om te verwag dat JSON waarskynlik nie veel eenvoudiger sal word soos die tyd aanstap nie. Dit impliseer dat om 'n skema vir jou data te hê net meer krities gaan word soos die tyd aanstap. Omdat JSON die standaard lêerformaat is om met API's te werk, is JSON Schema 'n goeie plaasvervanger vir diegene wat met API's werk.

Google en The Incognito Myth

Google en The Incognito Myth

Google en die incognito-mite Op 1 April 2024 het Google ingestem om 'n regsgeding te skik deur miljarde datarekords wat vanaf die incognitomodus ingesamel is, te vernietig.

Lees meer »