JSON → Apache Avro (.avsc)
Apache Avro & Confluent Schema Registry

JSON to Apache Avro Schema (.avsc) Converter

Convierta cargas útiles JSON en definiciones de esquema Apache Avro (.avsc) para producción con espacios de nombres, tipos primitivos y lógicos, uniones que admiten nulos y reglas de evolución.

100% Privacidad en el cliente
Zero Server Upload
Preajustes:
Avro Compiler Options & Schema Registry Settings
OrderFulfillmentEvent•smart
Campos
Entrada21 fields
{
"type": "record",
"name": "OrderFulfillmentEvent",
"namespace": "com.ecommerce.events.orders",
"doc": "Standard Avro event schema compiled from JSON payload for OrderFulfillmentEvent",
"fields": [
{
"name": "eventId",
"type": {
"type": "string",
"logicalType": "uuid"
},
"doc": "Standard UUID identifier for eventId",
"default": "00000000-0000-0000-0000-000000000000"
},
{
"name": "orderNumber",
"type": "string",
"doc": "Text string for orderNumber",
"default": ""
},
{
"name": "eventType",
"type": "string",
"doc": "Text string for eventType",
"default": ""
},
{
"name": "occurredAt",
"type": {
"type": "long",
"logicalType": "timestamp-millis"
},
"doc": "UTC timestamp (milliseconds since epoch) for occurredAt",
"default": 0
},
{
"name": "customer",
"type": {
"type": "map",
"values": "string"
},
"doc": "Associative string-keyed map for customer",
"default": {}
},
{
"name": "shippingAddress",
"type": {
"type": "map",
"values": "string"
},
"doc": "Associative string-keyed map for shippingAddress",
"default": {}
},
{
"name": "lineItems",
"type": {
"type": "array",
"items": {
"type": "record",
"name": "LineItemsItem",
"namespace": "com.ecommerce.events.orders",
"doc": "Standard Avro event schema compiled from JSON payload for LineItemsItem",
"fields": [
{
"name": "sku",
"type": "string",
"doc": "Text string for sku",
"default": ""
},
{
"name": "productName",
"type": "string",
"doc": "Text string for productName",
"default": ""
},
{
"name": "quantity",
"type": "int",
"doc": "Numeric value (int) for quantity",
"default": 0
},
{
"name": "unitPrice",
"type": "double",
"doc": "Numeric value (double) for unitPrice",
"default": 0
},
{
"name": "currency",
"type": "string",
"doc": "Text string for currency",
"default": ""
},
{
"name": "isTaxExempt",
"type": "boolean",
"doc": "Boolean flag for isTaxExempt",
"default": false
}
]
}
},
"doc": "List of LineItemsItem records for lineItems",
"default": []
},
{
"name": "subtotal",
"type": "double",
"doc": "Numeric value (double) for subtotal",
"default": 0
},
{
"name": "taxAmount",
"type": "double",
"doc": "Numeric value (double) for taxAmount",
"default": 0
},
{
"name": "shippingFee",
"type": "int",
"doc": "Numeric value (int) for shippingFee",
"default": 0
},
{
"name": "grandTotal",
"type": "double",
"doc": "Numeric value (double) for grandTotal",
"default": 0
},
{
"name": "currency",
"type": "string",
"doc": "Text string for currency",
"default": ""
},
{
"name": "couponCode",
"type": [
"null",
"string"
],
"doc": "Nullable string field for couponCode",
"default": null
},
{
"name": "payment",
"type": {
"type": "map",
"values": "string"
},
"doc": "Associative string-keyed map for payment",
"default": {}
},
{
"name": "notes",
"type": "string",
"doc": "Text string for notes",
"default": ""
}
]
}
Campos21 campos (1 nullable)
Hierarchy & Max DepthNivel 1 (1 registros)
Logical Types & Compatibility2 tipos lógicos • BACKWARD

Ejecución Local de Conocimiento Cero

Todo el procesamiento, análisis y generación de código se ejecutan estrictamente en la memoria del navegador. Cero subidas a servidores externos.

Motor Reactivo de Submilisegundos

All data payloads remain strictly local with zero external server communication.

Production Ready Export

Clean, optimized output formats ready for immediate deployment.

Referencia técnica y guía de arquitectura

Guía para Desarrolladores del Conversor de JSON a Esquema Apache Avro (.avsc) — Guía de referencia

Convierta cargas útiles JSON en definiciones de esquema Apache Avro (.avsc) para producción con espacios de nombres, tipos primitivos y lógicos, uniones que admiten nulos y reglas de evolución.

Parámetros clave y controles

recordNamestring

Identificador del registro raíz para el esquema Avro generado, conforme a las reglas de nomenclatura de Avro (debe iniciar con [A-Za-z_] y contener solo caracteres alfanuméricos o guiones bajos).

Por defecto: AutoRecord
namespacestring

Espacio de nombres de paquete o dominio (por ejemplo, com.company.events) que define el ámbito del registro y previene colisiones en el Schema Registry.

Por defecto: com.example.avro
nullabilityModestring

Define cómo se mapean los campos opcionales o con valores nulos. 'union_null_first' genera ["null", tipo] con default: null para garantizar compatibilidad con versiones anteriores.

Por defecto: union_null_first
inferLogicalTypesboolean

Activa la detección automática de marcas de tiempo ISO 8601, cadenas UUID y números de alta precisión, añadiendo anotaciones logicalType de Avro (como timestamp-millis o uuid).

Por defecto: true

Consejos profesionales y mejores prácticas

Orden de ramas en uniones Avro

Según la especificación de Apache Avro 1.x, el valor predeterminado (default) debe coincidir con la primera rama de la unión. Si utiliza "default": null, defina ["null", "string"] en lugar de ["string", "null"].

Valores por defecto compatibles

Al evolucionar esquemas en Confluent Schema Registry o Apicurio, asigne siempre un valor por defecto a los campos nuevos. Esto mantiene la compatibilidad BACKWARD y FULL con los consumidores existentes.

Mapear enteros a tipo long

Los enteros de JSON que superen los 32 bits (2^31 - 1), tales como timestamps en milisegundos o identificadores de base de datos, deben mapearse como 'long' para evitar desbordamientos en la serialización binaria.

Errores comunes y solución de problemas

org.apache.avro.AvroTypeException: Default value for field does not match union branch 0

Reordene el arreglo de tipos de la unión para que el tipo correspondiente al valor predeterminado sea el primer elemento. Con "default": null, la unión debe iniciar con "null", como en ["null", "string"].

Confluent Schema Registry arroja SchemaIncompatibleException al añadir nuevos campos

Añada un atributo "default" explícito (como null, una cadena vacía "" o false) a cualquier campo nuevo incorporado en la definición .avsc.

Preguntas frecuentes (FAQ)

¿Qué es un archivo de esquema Apache Avro .avsc?▼

Un archivo .avsc es una especificación en formato JSON que define un esquema de Apache Avro. Establece los nombres de registros, tipos de datos y valores predeterminados empleados para serialización binaria de alto rendimiento en Kafka, Spark y Hadoop.

¿Cómo se representan los objetos anidados y matrices de JSON en Avro?▼

Los objetos anidados se transforman en registros Avro subordinados con su propio 'name', 'type': 'record' y 'fields'. Las listas o matrices se convierten al tipo 'array' con una propiedad 'items' que describe el tipo de sus elementos.

¿Por qué se utiliza Avro en lugar de JSON sin procesar en flujos de eventos?▼

Avro serializa los datos en un formato binario compacto sin repetir los nombres de campos en cada mensaje. El esquema se almacena una sola vez en un Schema Registry, reduciendo el consumo de red y garantizando la integridad contractual.

¿Qué son los tipos lógicos (Logical Types) en Avro?▼

Los tipos lógicos enriquecen tipos primitivos con significado semántico. Al activar inferLogicalTypes, las cadenas de fecha se convierten a 'long' con 'timestamp-millis', y los identificadores UUID a 'string' con tipo lógico 'uuid'.

Herramientas y utilidades relacionadas

Todas las herramientas →
Guía para Desarrolladores: Generador de Esquemas de Validación Zod desde GraphQL SDLDesarrollo

Convierta tipos, consultas y entradas de GraphQL SDL en esquemas de validación Zod en tiempo de ejecución (z.object, z.string, z.array) con soporte exhaustivo de nulabilidad.

Abrir herramienta→
Guía de desarrollo del convertidor de GraphQL SDL a tipos e interfaces TypeScriptDesarrollo

Transforme definiciones de esquemas GraphQL (SDL), tipos, inputs y enums directamente en interfaces TypeScript limpias y sin dependencias.

Abrir herramienta→
K8S Configmap Secret Generator Referencia para DesarrolladoresDesarrollo

Utilidad de desarrollo para generar manifiestos de ConfigMap y Secret en Kubernetes con codificación Base64, stringData, TLS, autenticación de Docker y flags inmutables.

Abrir herramienta→
Guía para Desarrolladores del Generador de Kubernetes HorizontalPodAutoscaler (HPA v2)Desarrollo

Genere manifiestos YAML de HPA v2 con objetivos de uso de CPU y memoria, métricas personalizadas y políticas de estabilización de escalado ascendente y descendente.

Abrir herramienta→
Generador y Optimizador de Configuración de Producción Redis (redis.conf)Desarrollo

Genere archivos de configuración redis.conf ajustados para producción con políticas maxmemory, persistencia RDB/AOF, enlaces de red seguros y autenticación ACL.

Abrir herramienta→
Guía de Desarrollo: Optimizador y Generador de Hardware para PostgreSQL (postgresql.conf)Desarrollo

Calcule y genere configuraciones optimizadas de postgresql.conf basadas en las especificaciones del hardware (shared_buffers, work_mem, effective_cache_size, max_connections).

Abrir herramienta→