Generatore JSON
Generatore JSON online gratuito: crea dati Mock casuali in un clic senza scrivere template. Oltre 13 tipi di campo integrati e uno Schema di esempio, con nome, intervallo e conteggio personalizzabili. Funziona interamente nel browser locale.
Raccomandazioni correlate
Generatore JSON e dati Mock di test
Un Generatore JSON (JSON Generator / strumento JSON Mock) è uno strumento che, tramite una definizione dichiarativa dei campi, produce con un clic dati JSON casuali con una struttura specifica. È pensato per sviluppo frontend, integrazione backend e test automatizzati: permette di ottenere dati sintatticamente validi e strutturalmente controllati senza scrivere manualmente cicli e funzioni casuali quando le API non sono pronte o servono molti dati.
In commercio esistono due famiglie di generatori JSON: la prima è basata su sintassi a template (stile Handlebars come {{repeat(5)}} di json-generator.com, o funzionale come random(1,100) di extendsclass), più flessibile ma richiede l'apprendimento di una sintassi specifica; la seconda è basata su costruzione visuale dei campi (quella adottata da questo strumento): si aggiungono campi tramite GUI scegliendone il tipo, con un approccio WYSIWYG dalla curva di apprendimento minima, ideale anche per product manager, tester e frontend non full-stack.
I dati Mock (Mock Data) sono dati fittizi che simulano scenari di business reali e devono soddisfare tre caratteristiche: struttura identica all'API reale, valori dei campi in intervalli realistici e copertura dei casi tipici. Dati Mock di buona qualità permettono al frontend di completare il 90% del lavoro prima che l'API sia pronta e rendono stabili i test automatizzati senza dipendere dal backend reale.
I 13 tipi di campo integrati in questo strumento coprono la maggior parte degli scenari di test: String / Integer / Number / Boolean per i tipi di base; Email / Name / UUID / Date / URL / Phone per i campi business; Paragraph per testi lunghi; Enum per valori discreti e controllati (stati, ruoli, livelli); Array per elenchi. L'intero processo di generazione è eseguito in locale nel browser tramite JavaScript, senza dipendere da chiamate di rete.
L'elemento casuale è il cuore del generatore: il campo UUID segue la specifica RFC 4122 v4 (con bit di versione e variante corretti), l'Email è composta da nomi comuni + domini di test, le date sono campionate casualmente tra il 2020-01-01 e l'istante corrente. Se il tuo progetto richiede dati di test riproducibili (ad esempio per test di regressione), consigliamo di generarli una volta e salvarli come file .json da usare come fixture.
Casi d'uso
- Sviluppo frontend: serve un set stabile e ripetibile di dati Mock per il rendering dei componenti (liste utenti, card prodotto, dettagli ordine)
- Integrazione frontend-backend: le API di backend non sono ancora pronte e il frontend ha bisogno di dati per completare la pagina, evitando attese
- Test automatizzati QA: serve creare in batch dati con valori di campo diversi per scenari di test data-driven
- Documentazione API e Swagger / OpenAPI: usa il generatore per produrre rapidamente esempi di request / response conformi alla struttura
- Test di carico e prestazioni: prepara grandi quantità di dati strutturati prima dei test per verificare la stabilità sotto alta concorrenza
- Migrazione database e pulizia dati: genera JSON di esempio per validare la logica di business durante lo sviluppo degli script
- Didattica e dimostrazioni: blog tecnici, slide e materiali formativi hanno bisogno di esempi JSON ordinati e ben strutturati
- Validazione form e logiche di cache lato frontend: genera valori limite (minimo / massimo / vuoti / tipo anomalo) per testare i casi estremi
Come utilizzare
- Nel "Costruttore Schema" a sinistra visualizza lo Schema di esempio predefinito (7 campi: id / name / email / age / active / createdAt / bio) oppure clicca su "+" per aggiungere un campo personalizzato
- Per ogni campo imposta il nome (personalizzato) e il tipo (13 opzioni nel menu a tendina); per i tipi numerici e Paragraph puoi compilare min / max, mentre per Enum inserisci i candidati separati da virgola
- Spunta "Genera come array" e imposta il conteggio (1-1000), oppure deselezionalo per generare un solo oggetto JSON
- Clicca sul pulsante "Genera" in alto a destra: l'editor mostrerà immediatamente il JSON formattato e indicherà il numero di campi e di record generati
- Clicca su "Copia" per incollare il risultato in codice o in strumenti API, oppure su "Scarica" per salvarlo come file generated.json
Funzionalità
- 13 tipi di campo integrati: String / Integer / Number / Boolean / Email / Name / UUID / Date / URL / Phone / Paragraph / Enum / Array, subito pronti senza memorizzare sintassi di template
- Costruttore di campi visuale: aggiungi o rimuovi campi tramite interfaccia grafica, imposta nome e tipo di campo in modalità WYSIWYG, senza scrivere template JSON a mano
- Controllo intervallo per numeri e paragrafi: i tipi Integer, Number e Paragraph supportano valori minimi e massimi personalizzati, generando dati più vicini al business
- Valori enum personalizzati: inserisci un elenco di valori separati da virgola (es. admin,user,guest) per generare opzioni discrete controllate
- Passaggio rapido oggetto singolo / array: spunta "Genera come array" + conteggio (1-1000) per alternare liberamente tra JSON singolo e forma ad array
- Caricamento rapido Schema di esempio: schema integrato a 7 campi (id / name / email / age / active / createdAt / bio), un clic per generare un esempio completo
- Pannello di output con evidenziazione del codice: editor CodeMirror a destra mostra in tempo reale il risultato generato, con syntax highlighting JSON, numeri di riga e modalità di sola lettura
- Copia e scarica con un clic: il risultato generato può essere copiato negli appunti con un solo clic o scaricato direttamente come file generated.json
- Esecuzione locale nel browser: tutta la costruzione dei campi e la generazione dei dati avviene completamente nel tuo browser, zero upload di dati, sicuro anche per campi business sensibili
- Adatto a desktop e mobile: layout a due colonne regolabile su PC; su mobile passa automaticamente alla scheda input/output per un'esperienza fluida
Esempi di codice
JavaScript: fetch + dati generati per l'integrazione API
javascriptSalva il generated.json scaricato dal generatore nella cartella mock locale e fallo intercettare da fetch per l'integrazione frontend autonoma.
// Metti generated.json in /public/mock/users.json
// Poi recuperalo con fetch come dati Mock
async function fetchMockUsers() {
const res = await fetch('/mock/users.json');
const users = await res.json();
console.log(`Caricati ${users.length} utenti`);
return users;
}
// Oppure incorporato direttamente nel codice (utile nei test)
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 }
];
// Oppure importato come fixture in Jest / Vitest
import users from './fixtures/users.json';
test('rendering della lista utenti', () => {
render(<UserList users={users} />);
expect(screen.getAllByRole('listitem')).toHaveLength(users.length);
});Python: usa la libreria Faker per generazioni Mock più complesse
pythonSe i 13 tipi di campo di questo strumento non bastano, la libreria Python Faker offre oltre 100 generatori localizzati e si integra bene con il generatore.
# Installazione: pip install faker
from faker import Faker
import json
fake = Faker('it_IT') # localizzazione italiana
# Genera un singolo utente
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()
}
# Genera 100 record in batch e scrivi in 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"Sono stati generati {len(users)} record utente")Riga di comando: curl + jq per inviare i dati generati via POST all'API
bashPer test di carico o inizializzazione dati puoi usare curl per inviare il generated.json scaricato dal generatore direttamente all'API di destinazione.
# Supponendo che generated.json sia nella directory corrente e l'API target sia POST /api/users
# Inizializzazione batch dei dati
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
# Oppure estrai un singolo record con jq e invialo
cat generated.json | jq '.[0]' | \
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d @-Domande frequenti
A cosa serve il Generatore JSON e come si usa?
Il Generatore JSON serve a creare con un clic dati JSON casuali che rispettino una struttura specifica, ed è comunemente usato per Mock frontend, integrazione API e test automatizzati. Come usarlo: nel Costruttore Schema a sinistra aggiungi campi e imposta nome e tipo (con intervallo min/max o valori enum opzionali), spunta "Genera come array" e inserisci il conteggio, clicca su "Genera" per vedere il risultato a destra, quindi copia o scarica direttamente.
Quali tipi di campo sono supportati?
Sono integrati 13 tipi di campo comuni: String (stringa casuale), Integer (intero), Number (decimale), Boolean (booleano), Email, Name (nome in inglese), UUID (conforme a RFC 4122 v4), Date (timestamp ISO 8601), URL, Phone (numero in stile USA), Paragraph (testo multi-parola), Enum (personalizzato), Array (array di stringhe). Coprono la stragrande maggioranza degli scenari di test API.
Come posso personalizzare il numero di record generati? Posso generarne 1000 in una volta?
Dopo aver spuntato la casella "Genera come array", inserisci un numero intero compreso tra 1 e 1000 nel campo conteggio e clicca su genera: otterrai un array di oggetti della dimensione richiesta. 1000 è il limite dello strumento, più che sufficiente per la maggior parte dei test di carico e scenari di generazione in batch; per quantità superiori puoi usare script locali con chiamate in ciclo o librerie come Faker.js.
Come si usa il campo Enum? Posso definire valori personalizzati?
Dopo aver impostato il tipo di campo su Enum, appare una casella di input in cui inserire i valori candidati separati da virgola (ad esempio admin,user,guest oppure high,medium,low): a ogni generazione ne verrà estratto uno a caso. È ideale per costruire campi discreti e controllati come ruolo, stato o livello, evitando di scriverli manualmente ogni volta.
Posso controllare l'intervallo dei valori numerici e dei paragrafi?
Sì. I tipi Integer e Number supportano i campi min e max, e lo strumento genera interi o decimali casuali in quell'intervallo (con 2 cifre decimali); anche il tipo Paragraph supporta min/max per il numero di parole (ad esempio 20-100 parole). In questo modo i dati generati sono più realistici e si evitano valori palesemente finti come age=999999.
Gli UUID generati sono conformi allo standard?
Sì. Il campo UUID viene generato secondo la specifica RFC 4122 v4, con bit di versione (4) e bit di variante (8/9/a/b) corretti: può essere usato direttamente come chiave primaria di database, numero d'ordine, ID di tracciamento e così via.
Posso copiare e scaricare il risultato generato con un clic?
Sì. Cliccando sul pulsante "Copia" nella barra degli strumenti il JSON formattato viene copiato negli appunti; cliccando su "Scarica" il file viene salvato automaticamente come generated.json, il cui nome compare nell'elenco download del browser. Il contenuto del file è identico a quello visualizzato nell'editor.
Qual è la differenza tra Generatore JSON e Formattatore JSON?
Le funzioni sono complementari: il Generatore JSON crea da zero nuovi dati JSON casuali, utile per test e Mock; il Formattatore JSON riordina e rende leggibile un JSON esistente, utile per abbellire e validare. Consigliamo di usare prima il Generatore per ottenere i dati di test, poi il Formattatore per la rifinitura o per convertire in strutture TypeScript / Java.
I dati generati vengono caricati su un server? È sicuro?
No. La costruzione dei campi, la generazione dei dati casuali, la copia e il download vengono eseguiti interamente in locale nel tuo browser tramite JavaScript: i dati non vengono inviati a nessun server, né registrati o memorizzati nella cache. Puoi usarlo in sicurezza anche per campi di API interne, strutture non ancora rilasciate o scenari di test sensibili. Chiudendo la pagina i dati vengono eliminati.
Come posso usare direttamente il risultato generato per i test API?
Dopo aver copiato il risultato puoi incollarlo nel Body di Postman / Apifox / Apipost e inviarlo direttamente; oppure caricarlo come fixture nei framework di test Jest / Mocha / Pytest tramite JSON.parse; lato frontend puoi anche salvare il generated.json scaricato nella cartella mock locale e farlo intercettare da axios / fetch come risposta.
"Name" ed "Email" generati sono dati reali?
No, sono dati fittizi. Il campo Name combina casualmente nomi e cognomi da un dizionario inglese integrato; il campo Email unisce nome + cognome + numero seriale + dominio di test (example.com / test.org, ecc.). Sono tutti esempi inventati, da non usare per verifiche reali né per inviare email agli indirizzi generati.
Posso generare solo un singolo oggetto invece di un array?
Sì. Basta deselezionare la casella "Genera come array" per ottenere un singolo oggetto JSON (invece di un array), utile per il debug di una singola richiesta, esempi nella documentazione o anteprima di un singolo record; riselezionala e indica un conteggio per tornare alla modalità array.
Risoluzione dei problemi
Dopo aver cliccato "Genera" appare "Aggiungi almeno un campo"
Significa che nello Schema corrente non è stato compilato alcun nome di campo valido. Controlla il Costruttore Campi a sinistra: ogni riga deve avere un nome campo compilato per partecipare alla generazione; i nomi vuoti vengono saltati. Clicca su "+" per aggiungere un nuovo campo, oppure riprendi lo Schema di esempio visibile in alto come riferimento.
L'ordine dei campi generati non corrisponde a quello a sinistra
La specifica JSON di per sé non garantisce l'ordine dei campi, ma questo strumento li emette rigorosamente nell'ordine in cui sono stati aggiunti nello Schema dall'alto verso il basso. Verifica se qualche campo è stato cancellato o aggiunto per sbaglio a sinistra; se l'ordine non torna, ricarica la pagina e riaggiungi i campi nell'ordine desiderato.
Il campo Enum genera sempre una stringa vuota
Il campo Enum richiede l'inserimento di valori separati da virgola nella casella di input (ad esempio admin,user,guest): se la casella è vuota o contiene solo una virgola, verrà generata una stringa vuota. Assicurati di inserire almeno un valore valido: lo strumento ne estrarrà uno a caso a ogni generazione.
I campi numerici restituiscono NaN o undefined
Di solito capita quando le caselle min e max sono vuote o contengono caratteri non numerici. I campi Integer/Number hanno comunque valori predefiniti (0-100) anche se l'intervallo non viene compilato, ma valori non numerici (lettere, numeri negativi, ecc.) possono causare anomalie. Consigliamo di compilare solo numeri interi o di lasciare vuoto per usare i valori predefiniti.
Le frasi generate dal campo Paragraph non sono coerenti
Il tipo Paragraph utilizza un dizionario lorem integrato per combinare parole a caso, volutamente non sensato per evitare sovrapposizioni con paragrafi reali. Se ti serve un testo più realistico, usa la libreria Python Faker o le API di generazione testo di Hugging Face; per i soli test di layout UI il paragrafo lorem è più che sufficiente.
Non trovi il file generated.json scaricato
Dopo aver cliccato "Scarica" il browser salva generated.json nella cartella dei download predefinita. Alcuni browser (soprattutto su mobile) richiedono di cercarlo manualmente nell'elenco download. Su Safari controlla la posizione dei download nelle Preferenze; su Chrome usa l'icona download accanto alla barra degli indirizzi.
Voglio generare un singolo JSON invece di un array
Deseleziona la casella "Genera come array" sotto il Costruttore Schema. Una volta deselezionata, indipendentemente dal valore nel campo conteggio, verrà emesso un singolo oggetto JSON {}, ideale per debug di una singola richiesta, esempi nella documentazione o fixture di un singolo record.
La pagina rallenta generando 1000 record
1000 record è vicino al limite di rendering del browser. Se lo scorrimento dell'editor a destra risulta lento dopo la generazione, ti consigliamo di: ① cliccare subito "Copia" o "Scarica" per ottenere i dati e poi chiudere la pagina; ② generare in blocchi (es. 500 + 500, poi unire manualmente); ③ per test di carico estremi consigliamo di usare direttamente Python Faker / Mock.js e simili script nativi.
Glossario
- JSON
- JavaScript Object Notation: formato leggero di scambio dati, composto da coppie chiave-valore e array; è lo standard di fatto per le API Web e per lo scambio dati frontend-backend.
- Dati Mock
- Dati fittizi che simulano scenari di business reali, usati nello sviluppo frontend, nell'integrazione API e nei test automatizzati quando il backend reale non è ancora disponibile; devono avere la stessa struttura delle API reali.
- Schema
- Definizione che descrive la struttura dei dati, ad esempio "un utente contiene i campi id, name, email". In questo strumento lo Schema è l'insieme di nomi e tipi definiti nel Costruttore Campi a sinistra.
- UUID (v4)
- Identificatore univoco universale, stringa di 128 bit definita dallo standard RFC 4122. La versione v4 si basa su numeri casuali (con bit di variante 8/9/a/b) ed è praticamente impossibile che si ripeta: viene usata nelle chiavi primarie distribuite.
- Tipo di campo (Field Type)
- Il tipo di dato che ogni campo di questo strumento deve specificare, il quale determina quale formato di valore casuale verrà generato. Ad esempio, il tipo Email genera stringhe in formato email, il tipo Integer genera interi.
- Enum (enumerazione)
- Tipo di campo che estrae casualmente un valore da un insieme discreto predefinito. Ad esempio, definendo admin,user,guest è ideale per campi di ruolo, stato o livello.
- min / max
- Vincolo sull'intervallo di valori del campo, valido solo per Integer, Number e Paragraph. Una volta impostato, il numero casuale verrà generato all'interno di questo intervallo chiuso, evitando valori limite palesemente finti.
- Output oggetto singolo vs array
- Lo strumento supporta due forme di output: deselezionando "Genera come array" si ottiene un singolo oggetto JSON {} (ideale per il debug di una singola richiesta), selezionandolo e indicando un conteggio si ottiene un array di oggetti [...] (ideale per dati in batch).
- RFC 4122
- Standard internazionale per gli UUID, che ne definisce formato, versioni (v1-v5) e bit di variante. Gli UUID generati da questo strumento sono conformi alla versione v4.
- CodeMirror
- Componente editor di codice lato browser usato nell'area di output a destra di questo strumento, che fornisce syntax highlighting JSON, numerazione delle righe e modalità di sola lettura.
- Elaborazione locale
- Costruzione dei campi e generazione dei dati eseguite interamente nel browser dell'utente tramite JavaScript, senza caricare nulla su server: più veloce e più sicuro, ideale per dati business sensibili.
- Fixture
- File di dati di esempio usato in modo fisso nei test. L'output del generatore può essere salvato come generated.json e usato come fixture per i test di regressione, garantendo risultati riproducibili.
Tabella rapida dei tipi di campo e delle regole di generazione
Intervallo, uso tipico ed esempio dei 13 tipi di campo integrati:
| Tipo | Regola | Esempio | Uso tipico |
|---|---|---|---|
String | Combinazione casuale di lettere a-z e cifre 0-9, lunghezza min-max (predefinita 5-20) | a8f3k0d2 | Stringhe casuali generiche, prefissi ID, token |
Integer | Intero casuale nell'intervallo chiuso [min, max] (predefinito 0-100) | 42 | Età, quantità, conteggi, ordinamento |
Number | Decimale casuale nell'intervallo chiuso [min, max], con 2 cifre decimali | 73,28 | Prezzo, punteggio, coordinate, probabilità |
Boolean | true / false con probabilità uguale | true | Attivo/disattivo, eliminato o no, interruttori di stato |
Email | firstName.lastName + 1-999 + dominio di test integrato | james.smith247@example.com | Email utente, destinatari di notifiche |
Name | Combinazione casuale di FirstName e LastName dal dizionario inglese integrato | Jennifer Martinez | Nome utente, cliente, autore |
UUID | Specifica RFC 4122 v4, con bit di versione (4) e di variante | f47ac10b-58cc-4372-a567-0e02b2c3d479 | Chiavi primarie, numero d'ordine, ID di tracciamento |
Date | Timestamp ISO 8601 tra il 2020-01-01 e l'istante corrente | 2024-08-15T07:23:11.000Z | Data di creazione, aggiornamento, validità |
URL | https://www.{dominio di test}/{parola lorem}-{1-999} | https://www.test.org/lorem-742 | URL avatar, link di redirect, URL risorse |
Phone | Formato telefonico USA +1-XXX-XXX-XXXX | +1-415-308-7241 | Numeri di contatto, numeri assistenza clienti |
Paragraph | Paragrafo lorem di min-max parole (predefinito 10-50) | lorem ipsum dolor sit amet ... | Biografie, note, descrizioni, commenti |
Enum | Estrazione casuale da un elenco di valori personalizzati separati da virgola | admin | Ruolo, stato, livello, tipo |
Array | Array di stringhe composto da 1-5 elementi String | ["a8f", "k0d", "92x"] | Tag, parole chiave, insiemi di campi accessori |
Scenari comuni di generazione JSON e combinazioni di campi consigliate
Ecco alcuni scenari molto comuni di dati di test API e le combinazioni di campi consigliate, pronte da replicare:
| Scenario | Combinazione di campi consigliata | Quantità consigliata |
|---|---|---|
| API lista utenti | id (Integer) + name (Name) + email (Email) + age (Integer 18-80) + active (Boolean) + createdAt (Date) + bio (Paragraph) | 20-50 |
| API lista prodotti | id (Integer) + name (String) + price (Number 10-9999) + stock (Integer) + category (Enum: electronics,clothing,food,book) + imageUrl (URL) | 30-100 |
| API ordini | orderId (UUID) + userId (Integer) + amount (Number 1-10000) + status (Enum: pending,paid,shipped,delivered) + createdAt (Date) | 10-30 |
| Lista articoli del blog | id (Integer) + title (String) + author (Name) + content (Paragraph 50-200) + tags (Array) + publishedAt (Date) | 10-20 |
| Lista commenti | id (Integer) + author (Name) + email (Email) + content (Paragraph) + rating (Integer 1-5) + createdAt (Date) | 50-200 |
| API rubrica indirizzi | id (Integer) + name (Name) + phone (Phone) + city (String) + zipcode (String) + isDefault (Boolean) | 5-10 |
Privacy & Security
Tutte le operazioni di costruzione dei campi, generazione di dati casuali, copia e download di questo Generatore JSON vengono eseguite interamente nel tuo browser tramite JavaScript: lo Schema che hai definito, i dati casuali generati, i nomi dei campi e il conteggio non vengono mai caricati su alcun server, né registrati, memorizzati nella cache o archiviati nel cloud. Puoi usarlo in sicurezza anche per campi di API interne, strutture non ancora rilasciate o scenari di test sensibili, senza rischi di fuga di dati.
Authoritative References
- IETFRFC 4122 - Specifica per identificatori univoci universali (UUID)
- OfficialSito ufficiale JSON (con specifica della sintassi)
- LibraryMock.js - Libreria dedicata al Mock dati per il frontend
- LibraryFaker.js / Faker Python - Librerie avanzate per la generazione di dati fittizi
- MDNMDN - JSON.parse / JSON.stringify
- Compressione JSON
- CSV in JSON
- JSON to CSV
- JSON Diff
- JSON Escape / Unescape
- Appiattimento JSON
- Formattatore JSON
- Generatore JSON
- Query JSONPath
- Unire JSON
- Riparare JSON
- Validatore di Schema JSON
- Ordinare JSON
- JSON Stringify
- JSON in HTML
- JSON in Java
- JSON to Markdown
- JSON in SQL
- JSON in TOML
- JSON in TypeScript
- XML in JSON
- JSON in XML
- YAML in JSON
- Da JSON a YAML
- JSON in Python
- JSON in Go
- JSON in Rust
- JSON in Swift
- JSON a C#
- JSON a C++
- JSON to PHP