Sări la conținut
Complet local

Validator de schemă JSON

Verificați un document JSON cu o schemă JSON și obțineți un raport de eroare lizibil, linie cu linie.

Intrare
Schema JSON
Ieșire

Validator de schemă JSON

Lipiți un document JSON pe o parte și o schemă JSON pe cealaltă, iar acest instrument vă va spune dacă documentul se potrivește - și dacă nu, exact unde și de ce. Fiecare problemă este raportată ca o singură linie cu calea pointerului JSON către valoarea ofensă, cuvântul cheie al schemei care a eșuat și valoarea reală găsită acolo, astfel încât să puteți trece direct la remediere în loc să căutați manual o sarcină utilă mare.

Validatorul acoperă nucleul de zi cu zi al schemei JSON draft-07: „tip” (inclusiv matrice de unire precum [„string”, null”] pentru câmpurile nullabile), „obligatoriu” și „proprietăți”, „additionalProperties” fie ca o schemă booleană, fie ca schemă proprie, „articole” atât pentru validarea listelor, cât și a tuplurilor, cuvintele cheie „minItems”/”maxunicItemstem”/” "minimum"/"maximum"/"exclusiveMinimum"/"exclusiveMaximum"/"multipleOf", cuvintele cheie șir "minLength"/"maxLength"/"pattern", "enum" și "const", și combinatorii "anyOf"/"allOf"/"oneOf"/"not". De asemenea, rezolvă indicatorii „$ref” către secțiunea „#/definiții” sau „#/$defs” a unei scheme – util pentru schemele care țin cont de forma unui obiect partajat – și detectează un „$ref” care se întoarce pe sine în loc să înghețe pagina.

Acesta este un validator, nu un generator de formulare bazat pe schemă: nu preia o schemă de la o adresă URL sau un „$id” și nu o va face niciodată, deoarece asta ar însemna trimiterea datelor sau a definiției schemei de pe dispozitiv. Orice „$ref” care indică în afara documentului este raportat ca neacceptat, mai degrabă decât ignorat în tăcere, astfel încât să știți întotdeauna exact ce a fost și ce nu a fost verificat.

Totul rulează local în browserul dvs. — documentul JSON și schema sunt analizate și verificate pe dispozitivul dvs. și nu sunt încărcate niciodată nicăieri, ceea ce face ca acest lucru să fie sigur de utilizat cu încărcături utile API, fișiere de configurare sau orice alt JSON care include date pe care preferați să nu le lipiți într-un site web aleatoriu.

FAQ

Ce schiță de schemă JSON acceptă acest lucru?
Un subset practic al draft-07: tip (inclusiv matrice union și nullable), obligatoriu, proprietăți, proprietăți suplimentare, articole, minItems/maxItems/uniqueItems, cuvinte cheie de limite numerice și de șir, enum/const, anyOf/allOf/oneOf/not și pointeri locali $ref în „#/definitions” sau „#/$def”.
Poate urma un $ref către un alt fișier sau URL?
Nu. Sunt rezolvate doar indicatorii locali în „#/definitions” sau „#/$defs” proprii aceleiași scheme. Un $ref care indică în altă parte este raportat ca neacceptat, mai degrabă decât preluat, deoarece preluarea unei scheme de la distanță ar însemna trimiterea datelor de pe dispozitiv.
Ce se întâmplă dacă schema mea are un $ref circular?
Este detectată și raportată ca o eroare „$ref” în loc să înghețe fila — validatorul ține evidența referințelor pe care le urmărește în prezent și se oprește de îndată ce se repetă.
Cum se raportează fiecare eroare?
O linie pe problemă, cu calea pointerului JSON către valoare (cum ar fi „/utilizator/vârstă”), cuvântul cheie al schemei care a eșuat (cum ar fi „minimum” sau „necesar”) și valoarea reală care a fost găsită acolo.
Documentul și schema mea JSON sunt încărcate oriunde?
Nu. Validarea rulează în întregime în browser folosind analizatorul JSON încorporat – nici datele, nici schema nu părăsesc dispozitivul și nicio schemă nu este preluată din rețea.