JSON Schema Validator

JSON Schema Validator

Check JSON against its declared structure and constraints, then inspect exact paths.

Draft 7 local-pointer profile · schema 64 KiB · data 256 KiB · no remote references or format assertions.

Schema and data

Enter schema and data, then validate.

Supported rules and work limits
  • Checks: required/type/properties/patternProperties/additionalProperties/propertyNames/dependencies, items/contains/uniqueItems, enum/const, numeric/string/array/object bounds, pattern, allOf/anyOf/oneOf/not and if/then/else.
  • References: # or #/… to schema positions only; no $id, remote URLs, URNs, named anchors or assertions beside $ref.
  • title/description/default/examples/$comment/readOnly/writeOnly/contentMediaType/contentEncoding are recognized annotations, without data mutation or content checks. format is unsupported and causes a profile error.
  • Numbers must be finite, within safe integer magnitude and preserve their decimal value after parsing. Decimal multipleOf uses exact integer scaling of shortest decimal values.
  • 64 KiB schema / 256 KiB data; JSON depth 48 and 20,000 nodes per input; 1,500 schema positions; 50,000 evaluations and 128 evaluation frames; 100 retained diagnostics.
  • Fresh worker per run, terminated after 4 seconds or Cancel/Escape. Limits are safeguards, not a performance guarantee. An interrupted run has no validity verdict.

Current page memory only. No automatic save, upload or remote schema request.

Comments & questions

JSON Schema Validator

Validate the contract behind a JSON document, including required fields, value types, bounds, arrays and conditional rules. This tool first checks the schema itself, then evaluates data in a separate worker. Its declared Draft 7 local-pointer profile accepts only supported rules and references to schema positions inside the same document.

Key features

  • Validate the schema against an included official Draft 7 meta-schema before evaluating data
  • Check required/type/properties, array items, enum/const, bounds and allOf/anyOf/oneOf/if conditions
  • Resolve local JSON Pointer references, including escaped property names and boolean schemas
  • Distinguish data invalidity, input/profile errors and indeterminate timeouts or cancellation
  • Reject duplicate JSON keys and numeric literals that would round to another decimal value
  • Save CSV/JSON verdicts and up to 100 diagnostics with total and omitted counts

How to use

  1. Choose the fixed Draft 7 local profile and paste or read schema and data JSON.
  2. Declare the Draft 7 $schema identifier on object schemas; use only in-document pointer references.
  3. Run validation and inspect the result stage and instance/schema JSON Pointer paths.
  4. Correct inputs and rerun. Input changes remove the previous result.
  5. Download CSV or JSON reports; preview pages never alter the retained report.

Use cases

  • Check API examples for missing required fields or unexpected properties
  • Test conditional requirements for different record categories
  • Validate array item types, tuple sizes and duplicate items
  • Review a schema migration while unsupported keywords are reported explicitly

Frequently asked questions

Which JSON Schema dialect is supported?

The Draft 7 local-pointer profile only. Object root schemas must declare http://json-schema.org/draft-07/schema# or its HTTPS equivalent. Boolean roots use the selected Draft 7 profile. Draft 2019-09/2020-12, unknown keywords and format assertions are rejected rather than silently skipped; this is not a claim of complete Draft 7 support.

Can schemas refer to another URL or a named identifier?

No. Only # and #/… references to actual schema positions in the current document are accepted. $id, remote/URN/file references and named anchors are rejected. Reference resolution never makes network requests. Conflicting validation keywords next to $ref are rejected because Draft 7 would ignore those siblings.

Are descriptions, defaults and examples validated as schema rules?

They are recognized annotations and are counted, not applied as data constraints. Default values are not inserted. readOnly/writeOnly and contentMediaType/contentEncoding are also annotations, without access checks or content decoding. Objects inside defaults/examples are not mistaken for schemas.

Why might valid JSON be rejected before validation?

The parser rejects duplicate decoded keys, unpaired Unicode surrogates, oversized/deep inputs and numbers outside the supported precision profile. Nonfinite, overflow/underflow and literals whose shortest decimal representation changes on parsing are rejected. Values above the safe integer magnitude are outside scope; ordinary decimals use their shortest decimal values.

How are expensive schemas and cancellation handled?

Every run uses a fresh worker. A 4-second main-thread watchdog terminates it; evaluation/depth limits can stop it sooner. Timeout, engine failure and cancellation are indeterminate, never proof that the data is invalid. There is no synchronous fallback when workers are unavailable.

Does a report contain every possible error?

A completed run retains the interpreter’s first 100 returned diagnostics and its total count; additional diagnostics are explicitly counted as omitted. Alternative branches may be represented by a combination error, not exhaustive nested detail. JSON Pointer paths are preserved; unavailable schema positions are marked instead of guessed. Diagnostic source messages are in English. Each diagnostic message is retained up to 512 characters.

Privacy

Schema, JSON data and reports remain in current page memory. References are never fetched, no inputs are uploaded or automatically saved, and downloaded reports may contain your field names and diagnostic text.

Related Tools

JSON FormatterJSON ↔ YAML ConverterXML FormatterWasm Module InspectorHreflang Matrix CheckerAST Query PlaygroundContainer Build GraphDependency Graph ExplorerSemver Range LabCron Schedule AuditorPatch Review WorkbenchSource Map ExplorerLocalization Catalog AuditorStructured Data ReviewerHTTP Archive AnalyzerWebhook Signature LabProtobuf Schema WorkbenchGraphQL Schema LabAvro Schema EvolutionLocal SQL WorkbenchSchema Form BuilderMesh Repair WorkbenchPipe Network LabRobot Arm Kinematics LabThermal Network LabBeam Response LabGear Train DesignerTolerance Stackup LabSensor Calibration FitPCB Stackup PlannerDigital Filter DesignerNetwork Reachability MapSun Shadow MapGPS Error SimulatorDigital Logic SimulatorAnalog Circuit LabMechanism Linkage LabAnalysis Mesh GeneratorOpenAPI Contract InspectorDatabase Migration PlannerDimensional Equation CheckerTruss Force LabBoolean Minimization LabControl Response LabQueueing Simulation LabGeofence Event SimulatorCoordinate Reference LabSurvey Traverse LabRaster Classification LabChoropleth Design LabMap Print ComposerRaster Reprojection LabElevation Contour MakerTerrain Viewshed LabWatershed DelineatorMap Tile PackagerText File Encoding WorkbenchFilesystem Portability AuditorSBOM License ExplorerFile Signature Auditornpm Lockfile Conflict ResolverSource Secret AuditorOffline Web Package BuilderCertificate Chain InspectorTorrent Metainfo InspectorChunked File PackagerEncrypted File VaultDuplicate File FinderArchive WorkbenchDesign Token ManagerSpacing Token DesignerResponsive Type SystemPackaging Dieline DesignerSVG Icon Sprite PackerFlex Layout PlaygroundCSS Grid PlaygroundRegex Equivalence LabMarkdown Repository AuditorLog Template MinerResponsive Layout AuditorEmail Template PreviewInternal Link GraphState Machine TesterPetri Net SimulatorGit History VisualizerCurl Request WorkbenchBinary Protocol DesignerHex File EditorBinary Patch WorkbenchFile Signature WorkbenchAPI Mock SandboxSchema Column MapperEvent Log SessionizerER Diagram DesignerTime Series Gap AuditorStratified Data SplitterData Lineage DesignerDecision Tree LabData Anonymization WorkbenchData Expectation RunnerBasket Pattern AnalyzerRobots Policy TesterSEO HTML AuditorAccessibility Structure AuditorSyndication Feed WorkbenchIndexNow Payload BuilderCrawl Log AnalyzerCSP Policy WorkbenchSearch Performance AnalyzerCSV Formula Risk AuditorCORS Response SimulatorCache Header LabCookie Policy InspectorWeb Vitals Trace LabSitemap Health AuditorBatch File RenamerFile Manifest VerifierFolder Space MapFolder Difference ReviewerRoute Order OptimizerGeoJSON Map EditorPolygon Overlay LabCartographic Label PlacerSpatial Table JoinGeoJSON Topology AuditorGPX Track AnalyzerTrack Privacy RedactorCSV Table JoinCSV Pivot WorkbenchScientific Data ProfilerTabular Cleaning WorkbenchRecord ReconciliationData Dictionary BuilderCanonical Graph AuditorRedirect Plan TesterHTTP response and ping reference testBrowser and System InformationXML ↔ JSON ConverterHTML FormatterJavaScript MinifierMock Data Generator.gitignore GeneratorLicense GeneratorUser-Agent ParserPassword Strength CheckerCode to ImageHTTP Status Code LookupMIME Type LookupJS & SQL String EscapeCSS Box Shadow GeneratorCSS Gradient GeneratorIndent ConverterNumber Base ConverterUnicode Escape ConverterUnicode InspectorJSON Structure DiffMarkdown Table GeneratorBase64 EncoderURL EncoderSQL FormatterCron Expression GeneratorRegex TesterUUID GeneratorHash GeneratorTimestamp ConverterJWT DecoderHTML Entity ConverterMarkdown PreviewCSS MinifierMeta Tag GeneratorJSON ↔ CSVCase ConverterImage to Base64
Explore all Dev Tools tools →Image/Media →Text/Convert →Life/Fun →