Vodič za JSON shemu

JSON shema

Prije nego što krenemo u JSON shemu, važno je znati razliku između JSON i JSON sheme.

JSON

JSON je skraćenica za JavaScript Object Notation i to je format podataka neovisan o jeziku koji API-ji koriste za slanje zahtjeva i odgovora. JSON je jednostavan za čitanje i pisanje za ljude i strojeve. JSON je tekstualni format koji nije vezan za jezik (neovisan o jeziku).

JSON shema

JSON shema je koristan alat za provjeru JSON strukture podataka. Da biste odredili strukturu JSON-a, koristite format temeljen na JSON-u. Njegova je svrha osigurati da su JSON podaci prihvatljivi. Konvencija za JSON podatke naše aplikacije može se definirati pomoću sheme.

Postoje tri glavna odjeljka specifikacije JSON sheme:

JSON hipershema:

JSON Hyper-Schema jezik je JSON sheme koji se može koristiti za označavanje JSON dokumenata hipervezama i uputama za obradu i promjenu vanjskih JSON resursa putem tekstualnih okruženja kao što je HTTP. Klik ovdje kako biste saznali više o JSON Hyper-shemi.

Jezgra JSON sheme:

To je skup pravila za označavanje i provjeru JSON dokumenata. 

Jezgra JSON sheme:

  • Opisuje format podataka koji trenutno imate. 
  • Provjerava valjanost podataka koji se mogu koristiti u automatiziranom testiranju. 
  • Osiguravanje točnosti podataka koje klijenti daju.  
  • Omogućuje čitljivu dokumentaciju za ljude i strojeve. 

Validacija JSON sheme:

Validacija temeljena na JSON shemi nameće ograničenja na strukturu podataka instance. Nakon toga, sve ključne riječi koje nemaju tvrdnje informacije, kao što su opisni metapodaci i indikacije upotrebe, dodaju se poziciji instance koja zadovoljava sva deklarirana ograničenja. 

Newtonsoftov JSON Schema Validator alat je alat koji možete koristiti izravno u svom pregledniku, besplatno. Ovaj alat možete koristiti za testiranje strukture vaše JSON sheme. Ova stranica sadrži kontrole i objašnjenja za početak. Na taj način lako je vidjeti kako poboljšati svoju JSON strukturu.

Naš JSON objekt možemo provjeriti pomoću alata za provjeru JSON sheme:

JSON Validator bez pogrešaka

Imamo dobnu potvrdu (minimum = 20 i maksimum = 40) kao što je prikazano na gornjoj slici. Nisu pronađene greške.

Validator JSON s pogreškom

Prikazuje pogrešku ako je potvrda dobi unesena netočno.

Stvaranje JSON sheme

Pogledajmo primjer JSON sheme da vidimo o čemu govorimo. Osnovni JSON objekt koji opisuje katalog proizvoda je sljedeći:

JSON primjer

Njegova JSON shema može se napisati na sljedeći način:

Rezultat JSON sheme

JSON shema je JSON dokument, a taj dokument MORA biti objekt. Ključne riječi su članovi/atributi objekta navedeni JSON shemom. "Ključne riječi" u JSON shemi odnose se na dio "ključa" kombinacije ključ/vrijednost u objektu. Pisanje JSON sheme većim dijelom uključuje mapiranje određene "ključne riječi" u vrijednost unutar objekta. 

Pogledajmo pobliže ključne riječi koje smo koristili u našem primjeru: 

JSON shema s kojom je usklađena shema resursa zapisana je ovim atributom. Ova shema je napisana prema standardu nacrta v4, kako je navedeno u "$ shema” ključna riječ. To sprječava da se vaša shema vrati na trenutnu verziju, koja može, ali i ne mora biti kompatibilna sa starijom verzijom.

"naslov"A"opis” ključne riječi samo objašnjavaju; oni ne nameću nikakva ograničenja na podatke koji se provjeravaju. Ove dvije ključne riječi opisuju svrhu sheme: ona opisuje proizvod.

"vrsta” ključna riječ definira prvi granični uvjet naših JSON podataka; mora biti JSON objekt. Ako ne postavimo vrstu za sve sheme, kôd ne bi radio. Neki uobičajeni tipovi su “number” “Boolean” “integer” “null” “object” “array” “string”.

 

JSON shemu podržavaju sljedeće biblioteke:

 

Jezik

Knjižnica

C

WJElement

Piton

jschon

PHP

Opis Json sheme

JavaScript

ajv

Go

gojsonschema

Kotlin

Medeja-validator

Rubin

JSONSchemer

JSON (Sintaksa)

Pogledajmo ukratko temeljnu sintaksu JSON-a. JSON sintaksa podskup je JavaScript sintakse koja uključuje sljedeće elemente:

  • Koriste se parovi ime/vrijednost koji predstavljaju podatke.
  • Objekti se drže u vitičastim zagradama, a svako ime predvodi znak ':' (dvotočka), s parovima vrijednosti odvojenim znakom “,” (zarez).
  • Vrijednosti su odvojene znakom "," (zarez), a nizovi su u uglatim zagradama.
Primjer JSON sintakse

JSON podržava sljedeće dvije podatkovne strukture:

  • Poredani popis vrijednosti: To može biti niz, lista ili vektor.
  • Zbirka parova ime/vrijednost: Različiti računalni jezici podržavaju ovu strukturu podataka.

 

JSON (objekt)

JSON shema je JSON objekt koji ocrtava vrstu i strukturu različitog JSON objekta. Izraz JavaScript objekta može predstavljati JSON objekt u okruženjima JavaScript runtime. Neki primjeri valjanih objekata sheme su sljedeći:

Shema

Šibice

{}

bilo koju vrijednost

{ tip: 'objekt' }

JavaScript objekt

{ tip: 'broj' }

JavaScript broj

{ type: 'string'}

JavaScript niz

npr:

Izrada novog objekta koji je prazan:

var JSON_Obj = {};

Stvaranje novog objekta:

var JSON_Obj = novi objekt()

JSON (Usporedba s XML-om)

JSON i XML su čitljivi formati neovisni o jeziku. U scenarijima stvarnog svijeta, oni mogu stvarati, čitati i dekodirati. Na temelju sljedećih kriterija, JSON možemo usporediti s XML-om.

Složenost

Budući da je XML složeniji od JSON-a, programeri preferiraju JSON.

Korištenje nizova

XML se koristi za izražavanje strukturiranih podataka; međutim, XML ne podržava polja, ali JSON podržava.

gramatičko raščlanjivanje

JSON se tumači pomoću JavaScriptove funkcije eval. eval vraća opisani objekt kada se koristi s JSON-om.

 

Primjer:

 

JSON

XML

{

   “tvrtka”: Ferrari,

   "ime": "GTS",

   “cijena”: 404000

}

 

 

Ferrari 

 

GTS 

 

404000 

 

Prednosti JSON sheme

JSON je dizajniran za odstupanje u jeziku čitljivom za ljude i stroj. Međutim, bez finog podešavanja ne može biti ni jedno ni drugo. JSON shema ima prednost jer JSON čini razumljivijim i za strojeve i za ljude.

Korištenje JSON sheme također uklanja potrebu za nekoliko ažuriranja na strani klijenta. Izrada popisa uobičajenih HTML kodova i njihova implementacija na strani klijenta tipična je, ali netočna metoda za konstruiranje na strani klijenta API aplikacije. Međutim, ovo nije najbolja strategija jer promjene na strani poslužitelja mogu uzrokovati neispravan rad određenih funkcija.

Glavna prednost JSON sheme je njezina kompatibilnost s različitim programskim jezicima, kao i točnost i dosljednost provjere valjanosti.

JSON shema podržava širok raspon preglednika i Operativnih sustava, stoga aplikacije napisane u JSON-u ne iziskuju mnogo truda da sve budu kompatibilne s preglednikom. Tijekom razvoja programeri razmatraju nekoliko preglednika, iako JSON već ima mogućnosti.

JSON je najučinkovitiji način dijeljenja podataka bilo koje veličine, uključujući audio, video i druge medije. To je zbog činjenice da JSON pohranjuje podatke u nizove, što olakšava prijenos podataka. Kao rezultat toga, JSON je najbolji format datoteke za online API-je i razvoj.

Kako API-ji postaju sve češći, logično je pretpostaviti da će validacija i testiranje API-ja postati sve važniji. Također je realno očekivati ​​da JSON vjerojatno neće postati mnogo jednostavniji kako vrijeme bude prolazilo. To implicira da će postojanje sheme za vaše podatke postajati kritičnije kako vrijeme prolazi. Budući da je JSON standardni format datoteke za rad s API-jima, JSON shema je dobra zamjena za one koji rade s API-jima.