JSON-Utils

JSON to Zod Schema

Generate a Zod schema from a JSON sample for runtime validation in TypeScript apps. Nested objects become their own named schemas, whole numbers become z.number().int(), and strings that look like emails, URLs, UUIDs, or dates pick up the matching Zod checks when format detection is on. The inferred TypeScript types can be exported alongside the schemas.

JSON
Zod schema
Result will appear here
Ready. Press Generate or Ctrl+Enter.

How to use the JSON to Zod Schema

  1. Paste or type a JSON sample in the left pane. The built-in sample is there to start from.
  2. Set the root schema name and whether string formats like email and URL should become .email() and .url() checks.
  3. Press Generate, then copy the Zod schema or download it as a .ts file.

Example

The author object becomes its own named schema, referenced from the root.

{
  "name": "json-utils",
  "version": "1.0.0",
  "private": false,
  "tags": ["json", "tools"],
  "author": { "name": "Ada", "active": true },
  "score": 9.5,
  "notes": null
}

Frequently asked questions

What does format detection do?

When a sample string matches a common format, the schema uses the matching Zod check: .email(), .url(), .uuid(), .date(), or .datetime(). A format is only applied when every value seen for that field agrees on it.

Should I trust the output blindly?

No. Schemas are inferred from one sample. Fields that are sometimes missing look required unless the sample shows them missing, so review before shipping.