JSON-generator

Schema-builder
1
-
2
3
4
-
5
6
7
-
Aantal:

Genereer in één klik willekeurige Mock-data met onze gratis online JSON-generator. Inclusief 13 ingebouwde veldtypes en voorbeeldschema's, met aanpasbare veldnamen, bereiken en aantallen. Volledig in de browser, geen data-upload.

Gerelateerde aanbevelingen

Over de JSON-generator en Mock-testdata

Een JSON-generator (JSON Generator / JSON Mock-tool) is een tool die via declaratieve velddefinitie in één klik willekeurige JSON-data produceert die aan een opgegeven structuur voldoet. Het is bedoeld voor frontend-ontwikkeling, backend-integratie en geautomatiseerd testen, zodat ontwikkelaars bij 'API nog niet gereed' of 'batch-data nodig' geen loops en random-functies hoeven te schrijven, maar direct syntaxis-correcte, structuurgecontroleerde testdata krijgen.

Er bestaan twee soorten JSON-generatoren op de markt: de eerste is template-syntaxis-gebaseerd (zoals json-generator.com met Handlebars-stijl {{repeat(5)}} of extendsclass met random(1,100)-functies), maximaal flexibel maar vereist het leren van template-syntaxis; de tweede is visuele veldbouw (deze tool), waarbij je velden via GUI toevoegt en types kiest, WYSIWYG, met de laagste instapdrempel, ideaal voor product-, test- en frontend-ontwikkelaars die geen fullstack-ingenieurs zijn.

Mock-data (Mock Data) verwijst naar verzonnen gegevens die echte bedrijfsdata simuleren en moet aan drie kenmerken voldoen: structuur identiek aan echte API's, veldwaarden met realistische bereiken, en dekking van typische scenario's. Goede Mock-data laat frontend-ontwikkelaars 90% van het pagina-werk doen vóór de API live is, en zorgt ervoor dat geautomatiseerde tests stabiel draaien zonder afhankelijkheid van een echte backend-omgeving.

De 13 ingebouwde veldtypes dekken de meeste API-testscenario's: String / Integer / Number / Boolean voor basiswaarden; Email / Name / UUID / Date / URL / Phone voor bedrijfsvelden; Paragraph voor lange tekst; Enum voor toestandsmachines / rollen / niveaus; Array voor lijstvelden. Alle generatie verloopt volledig lokaal in de browser via JavaScript, zonder netwerkverzoeken.

Willekeurigheid staat centraal in de JSON-generator: UUID volgt RFC 4122 v4 (met juiste versie- en variantbits), Email combineert interne veelvoorkomende namen met testdomeinen, datums worden willekeurig gekozen tussen 2020-01-01 en nu. Als je reproduceerbare testdata nodig hebt (bijvoorbeeld regressietests), raden we aan de gegenereerde data te downloaden als .json-bestand en als fixture te bewaren.

Toepassingsgevallen

  • Frontend-ontwikkelaars hebben stabiele, herhaalbare Mock-data nodig voor het renderen van componenten zoals gebruikerslijsten, productkaarten en besteldetails
  • Wanneer de backend-API nog niet klaar is, kunnen frontend-ingenieurs data genereren om de pagina te integreren zonder te wachten op backend-respons
  • QA-schrijvers van geautomatiseerde API-tests willen in batch verschillende veldwaarden genereren voor data-gedreven testscenario's
  • Bij het schrijven van API-documentatie en Swagger / OpenAPI-voorbeelden snel verzoek-/responsvoorbeelden produceren die aan de structuur voldoen
  • Voorbereiding van grote hoeveelheden gestructureerde testdata vóór load- en performance-tests om de stabiliteit onder hoge concurrency te valideren
  • Bij database-migratiescripts en data-cleaning-tools voorbeeld-JSON genereren om bedrijfslogica te valideren
  • Onderwijs- en demoscenario's: technische blogs, PPT-screenshots en trainingsmateriaal die goed gestructureerde JSON-voorbeelden vereisen
  • Bij frontend-formuliervalidatie en lokale cache-logica: grenswaarden genereren (extreem klein / groot / leeg / afwijkend type) om te testen

Hoe te gebruiken

  1. Bekijk het standaard voorbeeldschema in de linker 'Schema-bouwer' (7 velden: id / name / email / age / active / createdAt / bio) of klik op '+' om een aangepast veld toe te voegen
  2. Stel voor elk veld een veldnaam (aangepast) en veldtype (13 keuzes) in; bij numerieke en alinea-types kun je min/max invullen, bij Enum vul je door komma's gescheiden waarden in
  3. Vink 'Genereren als array' aan en stel een aantal in (1-1000), of vink het uit om slechts één JSON-object te genereren
  4. Klik rechtsboven op 'Genereren'; de rechtereditor toont direct de opgemaakte JSON met het aantal velden en gegenereerde records
  5. Klik op 'Kopiëren' om het resultaat in code of API-tools te plakken, of klik op 'Downloaden' om het op te slaan als generated.json-bestand

Functies

  • 13 ingebouwde veldtypes: String / Integer / Number / Boolean / Email / Name / UUID / Date / URL / Phone / Paragraph / Enum / Array, direct klaar voor gebruik zonder sjabloonsyntaxis
  • Visuele veldbouwer: voeg velden toe of verwijder ze via een grafische interface, stel veldnaam en type in, volledig WYSIWYG zonder handmatig JSON-sjablonen te schrijven
  • Bereikbesturing voor getallen en alinea's: Integer-, Number- en Paragraph-types ondersteunen aangepaste minimum- en maximumwaarden voor business-realistische data
  • Aangepaste Enum-waarden: voer een door komma's gescheiden waardenlijst in (zoals admin,user,guest) om gecontroleerde discrete opties te genereren
  • Schakel tussen object en array: vink 'Genereren als array' aan + voer een aantal in (1-1000) om vrij te schakelen tussen enkele JSON en array-vorm
  • Voorbeeldschema snel laden: ingebouwd 7-velden voorbeeld (id / name / email / age / active / createdAt / bio), één klik voor een compleet voorbeeld
  • Code-highlighting uitvoerpaneel: de rechter CodeMirror-editor toont realtime resultaten met JSON-syntaxhighlighting, regelnummers en alleen-lezen weergave
  • Kopiëren en downloaden in één klik: genereer resultaten om direct naar het klembord te kopiëren of te downloaden als generated.json-bestand
  • Volledig lokaal in de browser: alle veldconstructie en datageneratie draait lokaal in je browser, geen data-upload, veilig voor gevoelige bedrijfsvelden
  • Desktop- en mobielvriendelijk: verstelbare links/rechts-kolomindeling op pc, automatische invoer/uitvoer-Tab op mobiel

Codevoorbeelden

JavaScript: fetch + gegenereerde data gebruiken voor API-integratie

javascript

Plaats de gegenereerde generated.json uit de tool in een lokale mock-map en laat deze door fetch onderscheppen, zodat de frontend zelfstandig kan integreren.

// Place generated.json in /public/mock/users.json
// Then use fetch to get it as Mock data
async function fetchMockUsers() {
  const res = await fetch('/mock/users.json');
  const users = await res.json();
  console.log(`Loaded ${users.length} users`);
  return users;
}

// Or embed directly into code (good for test cases)
const mockUsers = [
  { id: 1, name: 'Jennifer Martinez', email: 'jennifer.martinez382@example.com', age: 42, active: true },
  { id: 2, name: 'Robert Smith', email: 'robert.smith918@test.org', age: 67, active: false }
];

// Or import as fixture in Jest / Vitest
import users from './fixtures/users.json';
test('renders user list', () => {
  render(<UserList users={users} />);
  expect(screen.getAllByRole('listitem')).toHaveLength(users.length);
});

Python: geavanceerdere Mock-datageneratie met de Faker-bibliotheek

python

Als de 13 veldtypes van deze tool niet voldoende zijn, ondersteunt de Python Faker-bibliotheek 100+ gelokaliseerde datageneratoren die je kunt combineren met deze tool.

# Install: pip install faker
from faker import Faker
import json

fake = Faker('nl_NL')  # Dutch localization

# Generate a single user
def gen_user():
    return {
        "id": fake.random_int(min=1, max=99999),
        "name": fake.name(),
        "email": fake.email(),
        "phone": fake.phone_number(),
        "address": fake.address(),
        "company": fake.company(),
        "created_at": fake.iso8601()
    }

# Batch generate 100 records and write to generated.json
users = [gen_user() for _ in range(100)]
with open('generated.json', 'w', encoding='utf-8') as f:
    json.dump(users, f, ensure_ascii=False, indent=2)

print(f"Generated {len(users)} user records")

Commandoregel: gegenereerde data POSTen naar een API met curl + jq

bash

Voor load-tests of datainitialisatie kun je de gegenereerde generated.json uit de tool direct met curl POSTen naar de doel-API.

# Suppose generated.json is in the current directory and the target API is POST /api/users
# Batch initialize data
for i in $(seq 1 10); do
  curl -X POST https://api.example.com/users \
    -H "Content-Type: application/json" \
    -d @generated.json | jq '.'
done

# Or extract a single record with jq and POST it
cat generated.json | jq '.[0]' | \
  curl -X POST https://api.example.com/users \
    -H "Content-Type: application/json" \
    -d @-

Veelgestelde vragen

Wat doet de JSON-generator en hoe gebruik ik hem?

De JSON-generator produceert in één klik willekeurige JSON-data die voldoet aan een opgegeven structuur, ideaal voor frontend Mock, API-integratie en geautomatiseerd testen. Gebruik: voeg velden toe in de linker Schema-bouwer en stel veldnaam en type in (optioneel min/max-bereik of enumwaarden), vink 'Genereren als array' aan, voer een aantal in en klik op 'Genereren'. Het resultaat verschijnt rechts en kun je direct kopiëren of downloaden.

Welke veldtypes worden ondersteund?

13 ingebouwde veldtypes: String (willekeurige tekenreeks), Integer (geheel getal), Number (decimaal), Boolean (booleaan), Email (e-mail), Name (Engelse naam), UUID (RFC 4122 v4-conform), Date (ISO 8601-timestamp), URL (webadres), Phone (VS-telefoonnummer), Paragraph (alineatekst), Enum (aangepaste enum), Array (tekenreeks-array). Dekken de meeste API-testscenario's.

Hoe pas ik het aantal aan? Kan ik 1000 records tegelijk genereren?

Vink het selectievakje 'Genereren als array' aan en vul een geheel getal tussen 1 en 1000 in. Klik op genereren om de overeenkomstige objectarray te krijgen. 1000 is de bovengrens, ruim voldoende voor de meeste load-tests en batchscenario's. Voor meer kun je lokaal in een script herhalen of bibliotheken zoals Faker.js gebruiken.

Hoe werkt het Enum-veld? Kan ik waarden aanpassen?

Schakel het veldtype naar Enum; er verschijnt een invoerveld. Vul door komma's gescheiden waarden in (zoals admin,user,guest of high,medium,low). Bij het genereren wordt willekeurig één waarde gekozen. Ideaal voor rollen, statussen of niveaus om handmatig hardcoderen te vermijden.

Kan ik het bereik van getallen en alinea's bepalen?

Ja. Integer- en Number-types ondersteunen min en max, het gereedschap genereert willekeurige gehele getallen of decimalen (2 decimalen) binnen dat bereik. Paragraph ondersteunt ook min/max voor het aantal woorden (bijvoorbeeld 20-100 woorden). Zo ogen de gegevens realistischer en voorkom je waarden als age=999999.

Voldoen de gegenereerde UUID's aan de specificatie?

Ja. UUID-velden worden gegenereerd volgens RFC 4122 v4 met de juiste versiebit (4) en variantbit (8/9/a/b). Ze zijn direct bruikbaar als database-primary key, bestelnummer of tracking-ID.

Kan ik het resultaat met één klik kopiëren en downloaden?

Ja. Klik op 'Kopiëren' in de werkbalk om de opgemaakte JSON naar het klembord te kopiëren. Klik op 'Downloaden' om het automatisch op te slaan als generated.json-bestand; de bestandsnaam is zichtbaar in de downloadlijst van de browser en de inhoud is identiek aan de editor.

Wat is het verschil tussen de JSON-generator en JSON-formatter?

De twee vullen elkaar aan: de JSON-generator maakt vanaf nul nieuwe willekeurige JSON-data voor testen en Mock; de JSON-formatter structureert bestaande JSON-inhoud voor leesbaarheid en validatie. Gebruik eerst de generator om testdata te krijgen, daarna de formatter voor verdere opmaak of conversie naar TypeScript/Java.

Wordt de gegenereerde data naar een server geüpload? Is het veilig?

Nee. Alle veldconstructie, willekeurige datageneratie, kopiëren en downloaden gebeurt volledig lokaal in je browser via JavaScript. Data wordt niet naar een server geüpload, niet vastgelegd en niet gecachet. Interne API-velden, niet-live bedrijfsstructuren en gevoelige testscenario's kun je veilig gebruiken; bij het sluiten van de pagina wordt alles gewist.

Hoe gebruik ik het resultaat direct voor API-testen?

Kopieer het resultaat en plak het in de Body-sectie van Postman / Apifox / Apipost om direct te versturen. Of laad het in Jest / Mocha / Pytest via JSON.parse als fixture. Frontend-ontwikkelaars kunnen de gedownloade generated.json in een lokale mock-map plaatsen en deze laten onderscheppen door axios / fetch.

Zijn de gegenereerde 'namen' en 'e-mails' echte gegevens?

Nee, het zijn fictieve gegevens. Het Name-veld combineert willekeurig een Engelse voor- en achternaam uit een interne lijst. Het Email-veld plakt naam + volgnummer + testdomein (example.com / test.org, etc.) aan elkaar. Het zijn verzonnen voorbeelden; gebruik ze niet voor echte bedrijfsvalidatie en stuur geen e-mails naar deze adressen.

Kan ik slechts één object genereren in plaats van een array?

Ja. Vink 'Genereren als array' uit om één enkel JSON-object (geen array) te produceren, handig voor enkele API-debugging, doc-voorbeelden of voorbeeldgegevens. Vink het opnieuw aan en vul een aantal in om terug te schakelen naar array-modus.

Probleemoplossing

Na klikken op 'Genereren' verschijnt 'Voeg minstens één veld toe'

Dit betekent dat het huidige Schema geen veld bevat waarvoor een geldige veldnaam (field.name) is ingevuld. Controleer de linker veldbouwer: elke rij moet een veldnaam hebben om mee te doen; lege veldnamen worden automatisch overgeslagen. Klik op '+' om een nieuw veld toe te voegen of gebruik het voorbeeldschema bovenaan de 'Schema-bouwer' als referentie.

De veldvolgorde in het resultaat wijkt af van links

De JSON-specificatie garandeert geen veldvolgorde, maar deze tool volgt strikt de volgorde waarin velden van boven naar beneden in het Schema zijn toegevoegd. Controleer of velden links per ongeluk zijn verwijderd of opnieuw toegevoegd. Vernieuw de pagina en voeg ze in de gewenste volgorde opnieuw toe als de volgorde nog steeds niet klopt.

Enum-veld levert altijd een lege tekenreeks

Bij een Enum-veld moet je door komma's gescheiden kandidaatwaarden invullen (zoals admin,user,guest). Als het veld leeg is of alleen een komma bevat, krijg je een lege tekenreeks. Zorg dat je minstens één geldige waarde invult; het gereedschap kiest bij elke generatie willekeurig één waarde.

Numerieke velden tonen NaN of undefined

Dit komt meestal doordat de min- of max-invoer leeg is of een niet-numerieke waarde bevat. Integer/Number-velden hebben standaardwaarden (0-100) als je niets invult, maar letters of negatieve waarden kunnen fouten veroorzaken. Vul alleen gehele getallen in, of laat ze leeg om de standaardwaarden te gebruiken.

Paragraph-velden leveren onvloeiende zinnen

Het Paragraph-type gebruikt een interne lorem-woordenlijst en is bewust onvloeiend om overlap met echte Engelse alinea's te vermijden. Voor realistischere tekst kun je de Python Faker-bibliotheek of de Hugging Face-tekstgeneratie-API gebruiken. Voor UI-opmaaktests is lorem-tekst meer dan voldoende.

Gedownloade generated.json is niet te vinden

Na klikken op 'Downloaden' slaat de browser generated.json op in de standaard downloadmap. Sommige browsers (vooral mobiel) vereisen dat je de downloadlijst opent. Bekijk in Safari de downloadlocatie onder Voorkeuren; Chrome-gebruikers kunnen de downloadknop naast de adresbalk openen.

Ik wil slechts één JSON-object, geen array

Vink 'Genereren als array' onderaan de Schema-bouwer uit. Na uitschakelen produceert de tool altijd één enkel JSON-object {} ongeacht het aantal, ideaal voor enkele API-debugging, doc-voorbeelden of fixture-opslag.

Pagina wordt traag bij het genereren van 1000 records

1000 records liggen dicht bij de limiet van één browserrender. Als de rechtereditor traag scrolt na het genereren: ① klik direct op 'Kopiëren' of 'Downloaden' om de data te pakken en sluit de pagina; ② genereer in batches (bijv. 500 + 500 en voeg ze handmatig samen); ③ gebruik voor extreme load-tests direct native scripts zoals Python Faker / Mock.js.

Woordenlijst

JSON
JavaScript Object Notation, een lichtgewicht data-uitwisselingsformaat opgebouwd uit sleutel-waardeparen en arrays. Het is de de facto standaard voor web-API's en frontend-backend datatransport.
Mock-data
Verzonnen gegevens die echte bedrijfsscenario's simuleren. Gebruikt voor frontend-ontwikkeling, API-integratie en geautomatiseerd testen wanneer er nog geen echte backend is. De structuur moet overeenkomen met de echte API.
Schema
Een definitie die de datastructuur beschrijft, bijvoorbeeld 'gebruiker bevat id-, name- en email-velden'. In deze tool verwijst Schema naar de verzameling veldnamen en types in de linker veldbouwer.
UUID (v4)
Universeel unieke identifier, een 128-bits tekenreeks volgens de RFC 4122-standaard. v4 is gebaseerd op willekeurige getallen (inclusief 13/8/9/a/b-variantbits) en is nagenoeg nooit duplicaat, vaak gebruikt voor gedistribueerde primary keys.
Veldtype (Field Type)
Het datatype dat aan elk veld in deze tool moet worden toegewezen. Het bepaalt welke vorm van willekeurige waarde wordt gegenereerd. Email genereert bijvoorbeeld een e-mailformaat-tekenreeks, Integer een geheel getal.
Enum
Een veldtype dat willekeurig één waarde uit een vooraf gedefinieerde discrete waardenverzameling trekt. Bijvoorbeeld admin,user,guest — ideaal voor rollen, statussen en niveaus.
min / max
Begrenzing van het waardebereik van een veld, alleen geldig voor Integer-, Number- en Paragraph-types. Na instelling worden willekeurige waarden binnen dit gesloten interval gegenereerd, waardoor onrealistische grenswaarden worden vermeden.
Enkel object vs. array-uitvoer
Deze tool ondersteunt twee uitvoervormen: zonder 'Genereren als array' levert het een enkel JSON-object {} (ideaal voor enkele API-debugging); met vinkje en aantal levert het een objectarray [...] (ideaal voor batchdata).
RFC 4122
De internationale standaard voor UUID's, die het formaat, de versies (v1-v5) en variantbits definieert. De door deze tool gegenereerde UUID's voldoen aan de v4-specificatie.
CodeMirror
Een browsergebaseerde code-editorcomponent. Het rechter uitvoergedeelte van deze tool gebruikt CodeMirror voor JSON-syntaxhighlighting, regelnummers en alleen-lezen weergave.
Lokale verwerking
Alle veldconstructie en datageneratie wordt volledig in de browser van de gebruiker via JavaScript uitgevoerd, zonder upload naar een server. Sneller en veiliger, geschikt voor gevoelige bedrijfsvelden.
Fixture
Een vast testbestand met voorbeeldgegevens. De uitvoer van de generator kan worden opgeslagen als generated.json en dienen als fixture voor regressietests om reproduceerbare resultaten te garanderen.

Overzichtstabel veldtypes en genereerregels

De 13 ingebouwde veldtypes van deze tool met waardebereik, typisch gebruik en voorbeeld:

TypeRegelVoorbeeldGebruik
StringWillekeurige combinatie van a-z en 0-9, lengte min-max (standaard 5-20)a8f3k0d2Algemene willekeurige tekenreeks, ID-prefix, token
IntegerWillekeurig geheel getal binnen gesloten interval [min, max] (standaard 0-100)42Leeftijd, aantal, telling, sortering
NumberWillekeurig decimaal binnen gesloten interval [min, max], 2 decimalen73.28Prijs, score, coördinaat, kans
Booleantrue / false met gelijke kanstrueIs actief, is verwijderd, schakelaarstatus
EmailfirstName.lastName + 1-999 + intern testdomeinjames.smith247@example.comGebruikersmail, meldingsontvanger
NameWillekeurige combinatie uit interne Engelse FirstName + LastName-lijstJennifer MartinezGebruikersnaam, klantnaam, auteursnaam
UUIDRFC 4122 v4-specificatie, met versiebit (4) en variantbitf47ac10b-58cc-4372-a567-0e02b2c3d479Primary key-ID, bestelnummer, tracking-ID
DateISO 8601-timestamp willekeurig tussen 2020-01-01 en nu2024-08-15T07:23:11.000ZAanmaaktijd, updatetijd, ingangsdatum
URLhttps://www.{testdomein}/{lorem-woord}-{1-999}https://www.test.org/lorem-742Avatar-URL, doorverwijslink, resourceadres
Phone+1-XXX-XXX-XXXX VS-telefoonformaat+1-415-308-7241Contacttelefoon, klantenservicenummer
Paragraphlorem-alinea met min-max woorden (standaard 10-50)lorem ipsum dolor sit amet ...Biografie, opmerking, beschrijving, reactie
EnumWillekeurige keuze uit door komma's gescheiden aangepaste waardenlijstadminRol, status, niveau, type
ArrayTekenreeks-array bestaande uit 1-5 String-elementen["a8f", "k0d", "92x"]Labels, trefwoorden, verzameling bijbehorende velden

Veelvoorkomende JSON-generatiescenario's en aanbevolen veldcombinaties

Hieronder de meest voorkomende API-testdatascenario's met aanbevolen veldcombinaties die je direct kunt overnemen:

ScenarioAanbevolen veldcombinatieAanbevolen aantal
Gebruikerslijst-APIid (Integer) + name (Name) + email (Email) + age (Integer 18-80) + active (Boolean) + createdAt (Date) + bio (Paragraph)20-50
Productlijst-APIid (Integer) + name (String) + price (Number 10-9999) + stock (Integer) + category (Enum: electronics,clothing,food,book) + imageUrl (URL)30-100
Bestel-APIorderId (UUID) + userId (Integer) + amount (Number 1-10000) + status (Enum: pending,paid,shipped,delivered) + createdAt (Date)10-30
Blogartikelenlijstid (Integer) + title (String) + author (Name) + content (Paragraph 50-200) + tags (Array) + publishedAt (Date)10-20
Reactielijstid (Integer) + author (Name) + email (Email) + content (Paragraph) + rating (Integer 1-5) + createdAt (Date)50-200
Adresboek-APIid (Integer) + name (Name) + phone (Phone) + city (String) + zipcode (String) + isDefault (Boolean)5-10

Privacy & Security

Alle veldconstructie, willekeurige datageneratie, kopiëren en downloaden in deze JSON-generator gebeurt volledig lokaal in je browser via JavaScript. Je gedefinieerde Schema, gegenereerde willekeurige data, veldnamen en aantallen worden nooit naar een server geüpload, niet vastgelegd, niet gecachet en niet in de cloud opgeslagen. Interne API-velden, niet-live bedrijfsstructuren en gevoelige testscenario's kun je veilig gebruiken zonder risico op datalekken.

Authoritative References