Skip to content
100% local

Mock JSON data generator

Turn a one-line-per-field schema into an array of realistic fake JSON records.

Input
Output

Mock JSON data generator

Describe the shape of a record and get back an array of fake JSON rows that match it. Each line of input is one field, written as name:type — for example id:uuid, name:string, age:number, active:boolean, signedUpAt:date. Six types are supported: string, number, boolean, email, uuid and date, matched case-insensitively. Lines that don't fit that shape, use an unrecognized type, or are simply blank are skipped without complaint, so a stray typo never breaks the run.

Every field gets a value appropriate to its type: string picks a plain English word from a small built-in list, number produces a whole number from 0 to 1000, boolean is true or false, email combines two of those words into a lowercase address, uuid is a proper version-4 UUID, and date is an ISO YYYY-MM-DD string from the last three years. "Rows to generate" controls how many records come back, from 1 to 100. The result is a single JSON array, pretty-printed with two-space indentation, ready to paste into a fixture file, seed a local database, mock an API response, or hand to a frontend component before the real backend exists.

This is meant for the everyday case of needing plausible test data fast: populating a demo table, exercising a form, or feeding a script that expects a particular shape. It is not a schema validator and it doesn't infer types from existing JSON — you describe the fields you want and it fills them in, drawing every value from the browser's cryptographic random number generator so successive runs produce genuinely different data even though the format stays fixed.

Nothing about the schema you type or the data generated is uploaded anywhere — it runs entirely in your browser, and keeps working offline once the page has loaded.

FAQ

What format does the schema use?
One field per line, written as name:type. Supported types are string, number, boolean, email, uuid and date — for example: id:uuid, name:string, active:boolean.
What happens if a line is invalid?
It's skipped silently — no error, no interruption. Only lines that don't parse as name:type, or use a type outside the six supported ones, are ignored; the rest of the schema still generates normally.
How many rows can I generate?
Between 1 and 100 per run, set with the "Rows to generate" option. Run again for a fresh batch — each run draws new random values.
Where do the string and email values come from?
From a small built-in list of ordinary English words, picked at random. Emails combine two of those words as [email protected], all lowercase.
Is my schema or the generated data uploaded anywhere?
No — it never leaves your browser; everything runs locally on your device.