JSON Schema-validator

Valider JSON-data mot JSON Schema-definisjoner. Få detaljerte feilrapporter med stier. All behandling skjer i nettleseren din.

Øyeblikkelig validering Feildetaljer Behandling på klientsiden

Slik bruker du JSON Schema-validatoren

1

Skriv inn schema

Definer JSON Schema-et som beskriver den forventede strukturen.

2

Skriv inn data

Lim inn JSON-dataene du vil validere mot schemaet.

3

Valider

Klikk på Valider og se gjennom resultatene for eventuelle feil.

Hva er JSON Schema?

JSON Schema er et vokabular som lar deg annotere og validere JSON-dokumenter. Det gir en kontrakt for hvilke JSON-data en gitt applikasjon krever, og hvordan man samhandler med dem. JSON Schema brukes til validering, dokumentasjon og generering av mock-data.

Nøkkelfunksjoner

Typevalidering

Valider typer: string, number, integer, boolean, array, object, null

Begrensninger

Min/maks-lengde, område, mønster, obligatoriske felt og mer

Strukturdefinisjon

Definer nøstede objekter, arrayer og komplekse datastrukturer

Ofte stilte spørsmål

Hvilken versjon av JSON Schema støttes?

Verktøyet støtter JSON Schema Draft-07, Draft 2019-09 og Draft 2020-12 via Ajv-biblioteket. De vanligste schema-funksjonene støttes.

Kan jeg validere nøstede objekter?

Ja! JSON Schema støtter dypt nøstede objekter og arrayer. Du kan definere properties og items på ethvert nøstingsnivå, med egne valideringsregler for hvert felt.

Hva skjer hvis schemaet mitt er ugyldig?

Verktøyet validerer først at schemaet ditt i seg selv er gyldig JSON Schema. Hvis schemaet har feil, rapporteres de før verktøyet forsøker å validere dataene.

Hvilke JSON Schema-nøkkelord brukes mest?

type (string, number, object, array, boolean, null), properties med nestede schemaer, required som lister obligatoriske nøkler, enum for faste verdismengder, pattern for regex-begrensede strenger, og områdekontrollene minimum/maximum og minLength/maxLength. additionalProperties: false strammer inn objekter mot ekstra nøkler. Til sammen dekker de hoveddelen av API-valideringsregler.

Hvordan opptrer format-nøkkelord som date-time og email?

I moderne JSON Schema er format en annotasjon som standard, ikke en automatisk assertasjon - validatorer håndhever den bare når de er konfigurert for det, noe 2020-12-spesifikasjonen gjorde eksplisitt med et separat format-assertion-vokabular. Bruk pattern eller et egendefinert nøkkelord når håndheving må garanteres, og behold format som interoperabilitets-metadata ellers.

Hva er $ref og hvordan fungerer schema-gjenbruk?

$ref som peker på #/$defs/address refererer til et schema-fragment under $defs og validerer mot det der det brukes - dette er dedupliseringsmekanismen. Draft 2020-12 ga den eldre definitions det nye navnet $defs og formaliserte $dynamicRef for rekursive strukturer som kommentartrær. Referanser kan også peke på eksterne dokumenter, men å buntle dem lokalt er vanligere.

Hvordan skiller oneOf, anyOf og allOf seg?

allOf krever at hvert delschema validerer - et snitt, brukt til å komponere et basis-schema med ekstra begrensninger. anyOf krever minst ett - en union, brukt for polymorfe payloads. oneOf krever nøyaktig ett; at to eller null delschemaer validerer feiler, noe som er strengere enn folk forventer og den vanlige årsaken til overraskende feil med overlappende schemaer.

Hva endret seg mellom draft-07 og 2020-12?

2020-12 delte spesifikasjonen i separat forhandlingsbare vokabularer (validation, annotation, format-assertion), gav definitions det nye navnet $defs, forenklet exclusiveMinimum til et vanlig tall, og erstattet det eldre items-nøkkelordet med prefixItems pluss items. Mesteparten av verktøykjeden støtter begge; draft-07 er fortsatt mest utbredt, men 2020-12 er den gjeldende publiserte standarden.

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}