Generador de JSON

Constructor de esquema
1
-
2
3
4
-
5
6
7
-
Cantidad:

Generador de JSON online y gratis para crear datos mock aleatorios con un solo clic. Incluye 13 tipos de campos habituales y un esquema de ejemplo, con nombres, rangos y cantidad personalizables, ideal para integración frontend, pruebas de API y construcción de datos de muestra.

Relacionado

Sobre el generador de JSON y los datos mock de prueba

El generador de JSON (JSON Generator / herramienta de JSON Mock) es una utilidad que, mediante una definición declarativa de campos, produce con un solo clic datos JSON aleatorios con una estructura específica. Está orientado principalmente a desarrollo frontend, integración con backend y pruebas automatizadas, con el objetivo de que el desarrollador no tenga que escribir bucles y funciones aleatorias a mano cuando «la API aún no está lista» o «necesita datos en lote», obteniendo datos sintácticamente válidos y con estructura controlable.

En el mercado existen dos tipos principales de generadores de JSON: el primero es de sintaxis por plantillas (como el estilo Handlebars {{repeat(5)}} de json-generator.com o las funciones random(1,100) de extendsclass), con la máxima flexibilidad pero requiere aprender la sintaxis; el segundo es de construcción visual de campos (el que usa esta herramienta), que mediante una GUI permite añadir campos y elegir el tipo de forma WYSIWYG, con la curva de aprendizaje más baja, ideal para producto, QA y frontend no full-stack.

Los datos mock (Mock Data) son datos falsos que simulan un escenario de negocio real y deben cumplir tres características: estructura coherente con la API real, valores de campo dentro de un rango razonable y cobertura de los escenarios típicos. Unos buenos datos mock permiten al frontend completar el 90% del trabajo de página antes de que la API esté lista y hacen que las pruebas automatizadas sean estables sin depender del backend real.

Los 13 tipos de campo integrados cubren la mayoría de escenarios de pruebas de API: String / Integer / Number / Boolean para valores básicos; Email / Name / UUID / Date / URL / Phone para campos de negocio; Paragraph para textos largos; Enum para valores discretos controlados (estados, roles, niveles); Array para listas. Toda la generación se realiza en local mediante JavaScript, sin depender de ninguna petición de red.

La aleatoriedad es el núcleo del generador de JSON: el campo UUID sigue RFC 4122 v4 (con bits de versión y variante correctos); Email combina nombres comunes con dominios de prueba; las fechas se muestrean aleatoriamente entre 2020-01-01 y la fecha actual. Si tu proyecto requiere datos «reproducibles» (por ejemplo, pruebas de regresión), te recomendamos generar una vez y guardar el archivo .json como fixture reutilizable.

Casos de uso

  • Desarrollo frontend: cuando un componente necesita datos mock estables y reproducibles para renderizar listas de usuarios, tarjetas de producto, detalle de pedidos, etc.
  • Integración frontend cuando el backend aún no está listo: el ingeniero frontend genera datos para avanzar sin esperar la respuesta del backend
  • QA escribiendo pruebas automatizadas de API: construir lotes de datos con distintos valores de campo para escenarios data-driven
  • Documentación de API y ejemplos Swagger / OpenAPI: producir rápidamente ejemplos de request/response que cumplan la estructura
  • Preparación de datos para pruebas de estrés y rendimiento: validar la estabilidad del sistema bajo alta concurrencia con grandes volúmenes de datos estructurados
  • Migración de bases de datos y herramientas de limpieza de datos: construir JSON de muestra para validar la lógica de negocio
  • Docencia y demostraciones: artículos técnicos, diapositivas y material de formación que requieren ejemplos JSON bien estructurados
  • Validación de formularios y lógica de caché local en frontend: generar valores límite (muy pequeños / muy grandes / vacíos / tipos anómalos) para pruebas de borde

Cómo Usar

  1. Revisa el esquema de ejemplo por defecto en el «Constructor de esquema» de la izquierda (7 campos: id / name / email / age / active / createdAt / bio) o pulsa «+» para añadir campos personalizados
  2. Define para cada campo el nombre (personalizable) y el tipo (13 opciones); en tipos numéricos y de párrafo puedes indicar min / max, y en Enum una lista separada por comas
  3. Marca «Generar como array» y define la cantidad (1-1000), o desmárcalo para generar un único objeto JSON
  4. Pulsa el botón «Generar» arriba a la derecha; el editor de la derecha mostrará al instante el JSON formateado junto con el número de campos y de registros generados
  5. Pulsa «Copiar» para pegar el resultado en tu código o herramienta de API, o «Descargar» para guardarlo como generated.json

Características

  • 13 tipos de campos integrados: String / Integer / Number / Boolean / Email / Name / UUID / Date / URL / Phone / Paragraph / Enum / Array, listos para usar sin memorizar sintaxis de plantillas
  • Constructor visual de campos: añade y elimina campos mediante una interfaz gráfica, define el nombre y el tipo de cada campo de forma visual (WYSIWYG), sin escribir plantillas JSON a mano
  • Control de rango para números y párrafos: los tipos Integer, Number y Paragraph admiten valores mínimo y máximo personalizados para generar datos más cercanos al negocio
  • Enum con valores personalizados: introduce una lista separada por comas (por ejemplo admin,user,guest) para generar opciones discretas controladas
  • Cambio de objeto único a array con un clic: marca «Generar como array» e introduce la cantidad (1-1000) para alternar libremente entre un objeto JSON único y un array
  • Carga rápida de esquemas de ejemplo: esquema integrado con 7 campos (id / name / email / age / active / createdAt / bio); un clic genera la muestra completa
  • Panel de salida con resaltado de sintaxis: el editor CodeMirror de la derecha muestra el resultado en tiempo real con resaltado JSON, números de línea y modo lectura
  • Copiar y descargar al instante: copia el resultado al portapapeles o descárgalo directamente como archivo generated.json
  • Ejecución 100% local en el navegador: toda la construcción de campos y generación de datos ocurre dentro de tu navegador, sin subir nada, ideal para campos sensibles
  • Adaptado a escritorio y móvil: diseño de doble columna ajustable en PC; en móvil cambia automáticamente a pestañas de entrada/salida para una operación cómoda

Ejemplos de Código

JavaScript: usar fetch con datos generados para integración de API

javascript

Coloca el generated.json descargado en un directorio mock local y deja que fetch lo intercepte y devuelva, permitiendo al frontend integrarse de forma independiente.

// Put generated.json under /public/mock/users.json
// Then use fetch to load 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;
}

// Inline directly into the code (useful 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 a 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: usar la librería Faker para generación de datos mock más compleja

python

Si los 13 tipos de campo de esta herramienta no son suficientes, la librería Faker de Python admite más de 100 generadores localizados que pueden combinarse con el generador.

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

fake = Faker('zh_CN')  # Chinese locale

# 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")

Línea de comandos: usar curl + jq para hacer POST de los datos generados a la API

bash

En pruebas de estrés o inicialización, puedes usar curl para enviar por POST el generated.json descargado del generador directamente al endpoint deseado.

# Assume generated.json is in the current directory and the target endpoint 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 @-

Preguntas Frecuentes

¿Qué hace un generador de JSON y cómo se usa?

El generador de JSON sirve para producir con un solo clic datos JSON aleatorios con la estructura indicada, útil para mocks frontend, integración de APIs y pruebas automatizadas. Para usarlo: en el constructor de esquema de la izquierda añade campos y define su nombre y tipo (con min/max o enums opcionales), marca «Generar como array», introduce la cantidad y haz clic en «Generar»; el resultado aparecerá a la derecha, listo para copiar o descargar.

¿Qué tipos de campos admite?

Incluye 13 tipos habituales: String (cadena aleatoria), Integer (entero), Number (decimal), Boolean (booleano), Email (correo), Name (nombre en inglés), UUID (cumple RFC 4122 v4), Date (timestamp ISO 8601), URL (dirección web), Phone (teléfono formato EE. UU.), Paragraph (párrafo de varias palabras), Enum (valores personalizados) y Array (array de cadenas). Cubre la gran mayoría de escenarios de pruebas de API.

¿Cómo personalizo la cantidad? ¿Puedo generar 1000 registros de una vez?

Marca la casilla «Generar como array», introduce cualquier entero entre 1 y 1000 y haz clic en generar para obtener un array con esa cantidad de objetos. 1000 es el límite de la herramienta y basta para la mayoría de pruebas de estrés e inicialización por lotes; si necesitas más, ejecuta bucles en un script local o usa librerías como Faker.js.

¿Cómo se usa el campo Enum? ¿Puedo definir valores personalizados?

Cambia el tipo de campo a Enum y aparecerá un cuadro de texto donde debes indicar los valores separados por comas (por ejemplo admin,user,guest o high,medium,low); al generar se elegirá uno al azar. Es ideal para construir campos discretos como roles, estados o niveles, evitando escribirlos a mano cada vez.

¿Puedo controlar el rango de los números y la longitud de los párrafos?

Sí. Los tipos Integer y Number admiten min y max, y la herramienta generará enteros o decimales aleatorios dentro de ese rango (con 2 decimales). El tipo Paragraph también admite min/max para controlar el número de palabras (por ejemplo 20-100). Así los datos generados se parecen más al negocio real y evitas valores absurdos como age=999999.

¿Los UUID generados cumplen la especificación?

Sí. El campo UUID se genera según RFC 4122 v4, con los bits de versión (4) y variante (8/9/a/b) correctos, y puede usarse como clave primaria en base de datos, número de pedido o ID de seguimiento.

¿Puedo copiar y descargar el resultado con un solo clic?

Sí. Pulsa el botón «Copiar» de la barra de herramientas para llevar el JSON formateado al portapapeles; pulsa «Descargar» para guardar el archivo generated.json automáticamente. El nombre del archivo se ve en la lista de descargas del navegador y el contenido coincide exactamente con lo que muestra el editor.

¿Qué diferencia hay entre el generador de JSON y el formateador de JSON?

Son utilidades complementarias: el generador de JSON crea datos aleatorios nuevos desde cero, útil para pruebas y mocks; el formateador de JSON embellece y valida contenido ya existente. Te recomendamos usar primero el generador para obtener los datos de prueba y luego el formateador para revisar el estilo o convertir a TypeScript, Java, etc.

¿Los datos generados se suben a algún servidor? ¿Es seguro?

No. La construcción de campos, la generación aleatoria y la copia/descarga se ejecutan completamente en tu navegador mediante JavaScript local. Ningún dato se envía a ningún servidor ni queda registrado o en caché. Puedes usarlo con campos internos, estructuras aún no publicadas y escenarios sensibles sin preocuparte; al cerrar la pestaña todo desaparece.

¿Cómo uso el resultado generado directamente en pruebas de API?

Después de copiar el resultado, puedes pegarlo en el Body de Postman, Apifox o Apipost para enviarlo; o leerlo como fixture con JSON.parse en Jest, Mocha o Pytest; en frontend también puedes colocar el generated.json descargado bajo el directorio mock local y devolverlo interceptando axios o fetch.

¿Los «nombres» y «emails» generados son reales?

No son datos reales. El campo Name combina un nombre y apellido en inglés de un diccionario interno; el campo Email concatena nombre + apellido + número + dominios de prueba (example.com / test.org, etc.). Todo es ficticio, no los uses para validación de negocio real ni envíes correos a esas direcciones.

¿Puedo generar un único objeto en lugar de un array?

Sí. Desmarca la casilla «Generar como array» para obtener un único objeto JSON (no un array), útil para depurar una sola llamada, ejemplos de documentación o vista previa de un único registro. Marca de nuevo la casilla e introduce la cantidad para volver al modo array.

Solución de problemas

Al pulsar «Generar» aparece «Añade al menos un campo»

Significa que en el esquema actual no hay ningún campo con un nombre (field.name) válido. Revisa el constructor de la izquierda: cada fila debe tener un nombre de campo para participar en la generación; los nombres vacíos se omiten. Pulsa «+» para añadir un campo o sigue el esquema de ejemplo del constructor para rellenarlo.

El orden de los campos del resultado no coincide con el de la izquierda

La especificación JSON no garantiza el orden de los campos, pero esta herramienta los emite estrictamente en el orden en que fueron añadidos al esquema. Comprueba si algún campo fue eliminado o reañadido por accidente; si el orden sigue sin ser correcto, recarga la página y vuelve a añadirlos en el orden deseado.

El campo Enum siempre genera una cadena vacía

El campo Enum necesita valores candidatos separados por comas (por ejemplo admin,user,guest). Si el cuadro de texto está vacío o solo contiene comas, obtendrás una cadena vacía. Asegúrate de introducir al menos un valor válido; la herramienta elegirá uno al azar en cada generación.

Los campos numéricos muestran NaN o undefined

Normalmente ocurre cuando los cuadros min y max están vacíos o contienen valores no numéricos. Los campos Integer/Number tienen un rango por defecto (0-100) aunque se dejen vacíos, pero introducir letras o números negativos puede provocar errores. Te recomendamos introducir solo enteros o dejar los campos vacíos para usar el valor por defecto.

Las frases generadas por el campo Paragraph no son coherentes

El tipo Paragraph utiliza un diccionario lorem interno, deliberadamente incoherente para no coincidir con párrafos reales en inglés. Si necesitas texto más realista, considera la librería Python Faker o las APIs de generación de texto de Hugging Face; si solo lo necesitas para pruebas de maquetación, los párrafos lorem son suficientes.

No encuentro el archivo generated.json descargado

Al pulsar «Descargar», el navegador guarda generated.json en el directorio de descargas por defecto. Algunos navegadores (especialmente en móvil) requieren buscarlo manualmente en la lista de descargas. En Safari revisa la ubicación en Preferencias; en Chrome puedes consultarlo en el icono de descargas junto a la barra de direcciones.

Quiero generar un único objeto JSON en lugar de un array

Desmarca la casilla «Generar como array» situada debajo del constructor de esquema. Al hacerlo, sin importar lo que introduzcas en el campo de cantidad, se generará un único objeto JSON {}, ideal para depurar llamadas individuales, ejemplos de documentación o fixtures de un solo registro.

La página se ralentiza al generar 1000 registros

1000 registros está cerca del límite de renderizado de una sola pasada en el navegador. Si el editor de la derecha va lento tras generar: 1) usa de inmediato «Copiar» o «Descargar» para obtener los datos y cierra la página; 2) genera en lotes (por ejemplo 500 + 500 y combínalos manualmente); 3) para pruebas extremas es preferible usar scripts nativos como Python Faker o Mock.js.

Glosario

JSON
JavaScript Object Notation, formato ligero de intercambio de datos formado por pares clave-valor y arrays; es el estándar de facto para APIs web y comunicación frontend-backend.
Datos Mock
Datos falsos que simulan un escenario de negocio real, usados en desarrollo frontend, integración de APIs y pruebas automatizadas cuando aún no hay backend conectado; deben mantener la misma estructura que la API real.
Schema
Definición que describe la estructura de los datos, por ejemplo «un usuario contiene los campos id, name, email». En esta herramienta, el esquema es el conjunto de nombres y tipos definidos en el constructor de campos de la izquierda.
UUID (v4)
Identificador único universal, cadena de 128 bits definida por el estándar RFC 4122. La versión v4 se basa en números aleatorios (con bits de variante 8/9/a/b); las colisiones son prácticamente imposibles y se usa como clave primaria distribuida.
Tipo de campo (Field Type)
Tipo de dato obligatorio para cada campo en esta herramienta; determina el formato del valor aleatorio generado. Por ejemplo, el tipo Email genera una cadena con formato de correo e Integer genera un entero.
Enum (enumeración)
Tipo de campo que elige al azar un valor dentro de un conjunto discreto predefinido. Por ejemplo, tres valores admin,user,guest para campos de rol, estado o nivel.
min / max
Restricción de rango aplicable solo a Integer, Number y Paragraph. Una vez definidos, los valores aleatorios se generan dentro de ese intervalo cerrado, evitando valores límite obviamente falsos.
Objeto único vs salida array
La herramienta admite dos formas de salida: desmarcando «Generar como array» se obtiene un único objeto JSON {} (útil para depurar una sola llamada); marcando la casilla e indicando una cantidad se obtiene un array [...] (útil para datos en lote).
RFC 4122
Estándar internacional para UUID que define su formato, versiones (v1-v5) y bits de variante. Los UUID generados por esta herramienta cumplen la especificación v4.
CodeMirror
Componente de editor de código en el navegador; en esta herramienta el panel de salida derecho usa CodeMirror para ofrecer resaltado de sintaxis JSON, números de línea y modo lectura.
Procesamiento local
Toda la construcción de campos y generación de datos se ejecuta en JavaScript dentro del navegador del usuario, sin subir nada a ningún servidor: es más rápido y seguro, ideal para campos de negocio sensibles.
Fixture
Archivo de datos de muestra fijo usado en pruebas. La salida del generador puede guardarse como generated.json y reutilizarse como fixture en pruebas de regresión para obtener resultados reproducibles.

Tabla rápida de tipos de campo y reglas de generación

Rango de valores, uso típico y ejemplo de los 13 tipos de campo integrados:

TipoReglaEjemploUso
StringCombinación aleatoria de a-z y 0-9, longitud min-max (por defecto 5-20)a8f3k0d2Cadenas aleatorias genéricas, prefijos de ID, tokens
IntegerEntero aleatorio en el intervalo cerrado [min, max] (por defecto 0-100)42Edad, cantidades, contadores, ordenación
NumberDecimal aleatorio en [min, max] con 2 decimales73.28Precios, puntuaciones, coordenadas, probabilidades
Booleantrue / false con probabilidad 50/50trueActivo, eliminado, estado de un interruptor
EmailfirstName.lastName + 1-999 + dominio de prueba integradojames.smith247@example.comEmail de usuario, destinatario de notificaciones
NameCombinación aleatoria desde un diccionario interno de nombres y apellidos en inglésJennifer MartinezNombre de usuario, cliente, autor
UUIDRFC 4122 v4, con bit de versión (4) y bit de variantef47ac10b-58cc-4372-a567-0e02b2c3d479ID de clave primaria, número de pedido, ID de seguimiento
DateTimestamp ISO 8601 entre 2020-01-01 y la fecha actual2024-08-15T07:23:11.000ZFecha de creación, actualización, fecha de vigencia
URLhttps://www.{dominio de prueba}/{palabra lorem}-{1-999}https://www.test.org/lorem-742URL de avatar, enlace de redirección, dirección de recurso
PhoneFormato telefónico EE. UU. +1-XXX-XXX-XXXX+1-415-308-7241Teléfono de contacto, número de atención al cliente
ParagraphPárrafo lorem de min-max palabras (por defecto 10-50)lorem ipsum dolor sit amet ...Biografía, notas, descripciones, comentarios
EnumSeleccionado al azar de una lista de valores personalizados separados por comasadminRoles, estados, niveles, tipos
ArrayArray de cadenas de 1 a 5 elementos["a8f", "k0d", "92x"]Etiquetas, palabras clave, conjuntos de campos secundarios

Escenarios comunes de generación JSON y combinaciones de campos recomendadas

A continuación se muestran varios escenarios habituales de datos de prueba de API con sus combinaciones de campos recomendadas, listas para añadir directamente:

EscenarioCombinación de campos recomendadaCantidad sugerida
API de lista de usuariosid (Integer) + name (Name) + email (Email) + age (Integer 18-80) + active (Boolean) + createdAt (Date) + bio (Paragraph)20-50
API de lista de productosid (Integer) + name (String) + price (Number 10-9999) + stock (Integer) + category (Enum: electronics,clothing,food,book) + imageUrl (URL)30-100
API de pedidosorderId (UUID) + userId (Integer) + amount (Number 1-10000) + status (Enum: pending,paid,shipped,delivered) + createdAt (Date)10-30
Lista de artículos de blogid (Integer) + title (String) + author (Name) + content (Paragraph 50-200) + tags (Array) + publishedAt (Date)10-20
Lista de comentariosid (Integer) + author (Name) + email (Email) + content (Paragraph) + rating (Integer 1-5) + createdAt (Date)50-200
API de libreta de direccionesid (Integer) + name (Name) + phone (Phone) + city (String) + zipcode (String) + isDefault (Boolean)5-10

Privacy & Security

En este generador de JSON toda la construcción de campos, la generación de datos aleatorios, la copia y la descarga se ejecutan localmente en tu navegador mediante JavaScript: el esquema que definas, los datos aleatorios generados, los nombres de campo y las cantidades no se suben a ningún servidor, ni se registran, se cachean o almacenan en la nube. Puedes usarlo con total tranquilidad con campos internos, estructuras de negocio aún no publicadas y escenarios de prueba sensibles: no existe riesgo de fuga de datos.

Authoritative References