Saltar al contenido
Aback Tools Logo

JSON Schema vs Protobuf: Validación, Rendimiento y Cuándo Usar Cada Uno

JSON Schema vs Protocol Buffers comparados: profundidad de validación, velocidad de serialización, tamaño del payload, evolución de esquemas, herramientas y guía clara sobre cuándo usar cada formato.

DH
12 min de lectura2,700 palabras

JSON Schema y Protocol Buffers resuelven ambos el problema de definir cómo son tus datos, pero lo hacen de formas completamente distintas, para audiencias diferentes y con compensaciones muy distintas. Elegir el equivocado para tu caso de uso significa o un rendimiento lento que no planeaste, o una capa de validación incapaz de detectar los errores que importan. Esta guía compara ambos sistemas en profundidad de validación, velocidad de serialización, evolución de esquemas, herramientas y aplicabilidad real, para que puedas decidir con confianza.

2-5×Payload más pequeñobinario Protobuf vs JSON equivalente
3-10×Serialización más rápidaProtobuf vs benchmarks de codificación JSON
100%Legible por humanospayloads JSON Schema - depurables en cualquier lugar

¿Qué son JSON Schema y Protobuf?

JSON Schema es una especificación - parte del estándar borrador de la IETF - que te permite describir la forma, los tipos y las restricciones esperadas de un documento JSON. Escribes un esquema en JSON mismo, y una librería validadora (AJV, jsonschema, Cerberus, etc.) comprueba los datos entrantes contra ese esquema en tiempo de ejecución. El payload JSON que tu servicio envía o recibe sigue siendo texto plano; JSON Schema solo proporciona el libro de reglas.

Protocol Buffers (Protobuf) es un formato de serialización binario creado por Google y liberado como código abierto en 2008. Defines tus estructuras de datos en un archivo `.proto` usando un Lenguaje de Definición de Interfaces (IDL) dedicado, y luego ejecutas el compilador `protoc` para generar código de serialización y deserialización fuertemente tipado en el lenguaje que elijas. El payload codificado es binario - no legible por humanos - y significativamente más compacto que JSON.

¿Qué problema resuelve cada uno?

JSON Schema resuelve el problema de validación: dado un documento JSON, ¿se ajusta a la estructura esperada? Se usa en los límites de las APIs, en parsers de archivos de configuración, en validadores de formularios y en cualquier lugar donde necesites aplicar un contrato sobre datos JSON entrantes sin cambiar el formato mismo.

Protobuf resuelve el problema de serialización: ¿cómo codificas datos estructurados de la forma más compacta y rápida posible, y los decodificas de nuevo de forma fiable, en cualquier lenguaje de programación? Se usa en comunicación interna entre servicios, pipelines de datos, APIs móviles y en cualquier lugar donde la eficiencia del cable sea un requisito estricto.

  • JSON Schema: Describe y valida texto JSON. No hay formato nuevo - los datos siguen siendo JSON.
  • Protobuf: Define estructuras de datos en archivos .proto y las codifica como binario en el cable.
  • Objetivo compartido: Ambos permiten a los equipos acordar contratos de datos a través de los límites de los servicios.
  • Divergencia clave: JSON Schema es validación-primero; Protobuf es serialización-primero.

Note

JSON Schema y Protobuf no se excluyen mutuamente. Algunos equipos usan Protobuf para la comunicación gRPC interna y JSON Schema para validar payloads de APIs REST públicas - cada formato en el contexto donde rinde mejor.

Profundidad de validación y aplicación de contratos

Aquí es donde JSON Schema tiene una ventaja estructural clara. El vocabulario de JSON Schema está diseñado explícitamente para expresar reglas de validación y cubre una superficie amplia: restricciones de tipos, rangos de valores, patrones de cadenas, límites de longitud de arrays, campos requeridos, esquemas condicionales y operadores de composición como `allOf`, `anyOf` y `oneOf`. Un JSON Schema bien escrito puede detectar casi todas las violaciones del contrato de datos antes de que lleguen a la lógica de la aplicación.

Qué puede validar JSON Schema

  • Aplicación de tipos: string, number, integer, boolean, array, object, null.
  • Patrones de cadenas: patrones regex vía `pattern`, palabras clave de formato como `email`, `date-time`, `uri`.
  • Rangos numéricos: `minimum`, `maximum`, `exclusiveMinimum`, `multipleOf`.
  • Restricciones de arrays: `minItems`, `maxItems`, `uniqueItems`, `contains`.
  • Reglas de objetos: campos `required`, `additionalProperties`, `minProperties`, `dependentRequired`.
  • Lógica condicional: bloques `if`/`then`/`else` para reglas de validación entre campos.

Protobuf aplica la seguridad de tipos a nivel de generación de código. Una vez que ejecutas `protoc`, el código generado simplemente no puede asignar una cadena a un campo `int32` - el compilador lo impide. Pero Protobuf no tiene concepto nativo de rangos de valores, patrones regex o requisitos condicionales. Un campo declarado como `string email = 1` no garantiza que la cadena sea una dirección de email válida.

Cubriendo el hueco de validación de Protobuf

El plugin `protoc-gen-validate` (PGV) cubre este hueco añadiendo anotaciones de validación directamente en los archivos `.proto`. Anotas campos con restricciones como `[(validate.rules).string.email = true]` o `[(validate.rules).int32.gte = 0]`, y PGV genera métodos de validación junto al código de serialización estándar. Esto acerca Protobuf a la profundidad de JSON Schema - pero requiere añadir un plugin no estándar a tu cadena de herramientas y no está soportado nativamente por `protoc`.

Tip

Antes de escribir tu JSON Schema a mano, usa el [Generador de JSON Schema](/tools/data/converters/json-schema-generator) para auto-generar un borrador de esquema desde un payload JSON de ejemplo. Luego puedes refinar la salida con restricciones adicionales - mucho más rápido que escribir desde cero.
Característica de validaciónJSON SchemaProtobuf (nativo)Protobuf + PGV
Aplicación de tipos✓ Comprobación en runtime✓ Tiempo de compilación✓ Tiempo de compilación
Campos requeridos✓ array `required`✓ presencia proto3✓ reglas has_field
Patrones regex de cadenas✓ palabra clave `pattern`✗ No soportado✓ vía anotaciones
Rangos numéricos mín/máx✓ `minimum/maximum`✗ No soportado✓ vía anotaciones
Comprobaciones de formato email/URI✓ palabra clave `format`✗ No soportado✓ vía anotaciones
Condicional if/then/else✓ Soporte nativo✗ No soportado✗ No soportado
Dependencias entre campos✓ dependentRequired✗ No soportado✗ No soportado

Validador JSON

Valida tus documentos JSON contra un esquema al instante - local en el navegador, nada se sube, funciona con cualquier payload JSON.

Open tool

Serialización, rendimiento y tamaño del payload

En la dimensión de rendimiento, Protobuf gana de forma decisiva. El formato de codificación binaria elimina prácticamente toda la sobrecarga que hace costoso parsear JSON: sin cadenas de nombres de campo en cada payload, sin valores entre comillas, sin secuencias de escape, sin espacios en blanco, y codificación varint para enteros. El ahorro se multiplica a escala.

Por qué Protobuf es más rápido

La codificación y decodificación JSON requiere parseo de cadenas - escanear carácter a carácter, manejar secuencias de escape, convertir cadenas numéricas a tipos numéricos nativos y asignar objetos de cadena intermedios. Protobuf se salta todo eso. Los campos se identifican por etiquetas enteras, no por nombres de cadena, así que el decodificador lee una secuencia etiqueta-longitud-valor sin ninguna comparación de cadenas. Los campos enteros se almacenan como varints (enteros de longitud variable) en lugar de cadenas decimales, lo cual es más rápido de codificar y más pequeño en el cable.

user.proto
proto
// Los números de campo de Protobuf reemplazan las claves de cadena en el cable
// Este mensaje completo se codifica en ~20 bytes para valores típicos
message User {
  int32  id         = 1;  // varint - a menudo 1-2 bytes
  string email      = 2;  // bytes con prefijo de longitud
  string name       = 3;
  bool   is_active  = 4;  // un solo byte: 0 o 1
}

El objeto JSON equivalente con id 1001, email [email protected], name Alice e is_active true ocupa 71 bytes como texto compacto. La codificación Protobuf de los mismos datos es típicamente de unos 30-35 bytes: una reducción de tamaño de 2× para este pequeño ejemplo. Para arrays grandes de objetos, la reducción suele ser de 3-5× porque la sobrecarga de los nombres de campo se acumula en cada elemento.

Cuándo importan realmente el tamaño y la velocidad

Para APIs REST típicas que manejan cientos de peticiones por segundo, la diferencia entre JSON y Protobuf es imperceptible. JSON es suficientemente rápido. La economía cambia en tres situaciones concretas: servicios internos de alto rendimiento (millones de eventos por hora), apps móviles en conexiones de red limitadas y pipelines de streaming de datos donde codificas y decodificas miles de millones de registros. En estos contextos, la ventaja de rendimiento de Protobuf se traduce directamente en reducción de costes de infraestructura y menor latencia.

Warning

El formato binario de Protobuf es opaco - no puedes leer un payload Protobuf en la salida de curl, en la pestaña Network del navegador o en un archivo de log sin un decodificador y el esquema `.proto` original. Este coste operativo es real. Ten en cuenta la depurabilidad en tu decisión, no solo los números de throughput bruto.
MétricaJSON + JSON SchemaProtobuf
Tamaño del payloadLínea base (100%)20-50% de JSON (2-5× más pequeño)
Velocidad de serializaciónLínea base3-10× más rápido
Legible por humanos✓ Sí - inspeccionable en cualquier lugar✗ No - binario, necesita decodificador
Complejidad de parseoSobrecarga de parseo de cadenasBasado en etiquetas, sobrecarga mínima
Sobrecarga de validaciónComprobación de esquema en runtimeSeguro en tipos en tiempo de compilación
Coste de redMás altoMás bajo - menos bytes transmitidos

Evolución de esquemas y compatibilidad

Los servicios de larga vida necesitan cambiar sus esquemas de datos sin romper los clientes existentes. Aquí es donde brilla el diseño de Protobuf. Cada campo en una definición `.proto` tiene un número de campo entero único que está incrustado en la codificación binaria. Los clientes antiguos simplemente omiten los bytes etiquetados con números de campo que no reconocen. Se pueden añadir campos nuevos y eliminar campos antiguos sin un despliegue coordinado de todos los consumidores simultáneamente.

El contrato de números de campo de Protobuf

Las reglas para una evolución segura de esquemas Protobuf son explícitas y se aplican por convención: nunca reutilices un número de campo, ni siquiera después de eliminar un campo; marca los campos eliminados como `reserved` para que ninguna adición futura reutilice accidentalmente el número; y prefiere añadir campos opcionales nuevos en lugar de cambiar los existentes. Siguiendo estas reglas, puedes evolucionar un esquema Protobuf indefinidamente sin romper la compatibilidad del cable entre código antiguo y nuevo.

user_v2.proto
proto
message User {
  int32  id         = 1;
  string email      = 2;
  string name       = 3;
  bool   is_active  = 4;

  // Añadido de forma segura en v2 - los clientes antiguos ignoran el campo 5
  string phone      = 5;

  // El campo 6 fue eliminado; reservado para evitar su reutilización
  reserved 6;
  reserved "legacy_role";
}

JSON Schema no tiene mecanismo de evolución integrado

JSON Schema no tiene un concepto nativo de compatibilidad hacia atrás. Un JSON Schema es una descripción puntual de un documento válido. Si añades un campo requerido a un esquema, todos los productores existentes fallan la validación inmediatamente hasta que se actualicen. Si añades `additionalProperties: false`, los payloads existentes con cualquier campo extra fallan. Gestionar la evolución requiere estrategias de versionado explícitas: versionado de esquemas en tu registro, identificadores de esquema basados en URI, o ejecutar múltiples versiones de esquema en paralelo durante una ventana de migración.

Note

Herramientas como Confluent Schema Registry y AWS Glue Schema Registry aplican comprobaciones de compatibilidad (BACKWARD, FORWARD, FULL) a esquemas JSON Schema de la misma forma que lo hacen para Avro y Protobuf. Si trabajas en un contexto de Kafka o streaming de eventos, estos registros imponen la disciplina de evolución que a JSON Schema le falta de forma nativa.
  • Protobuf: Los números de campo proporcionan compatibilidad hacia atrás natural - añade campos libremente, elimina con `reserved`.
  • JSON Schema: Sin formato de cable, no hay concepto de compatibilidad binaria - versiona tus archivos de esquema explícitamente.
  • Valores por defecto de proto3: Todos los campos son opcionales por defecto en proto3, lo que simplifica la evolución comparado con proto2.
  • Cambios aditivos en JSON: Añadir campos opcionales es seguro; añadir campos requeridos o eliminar campos es un cambio rompedor.

Validador Protobuf

Valida tus archivos .proto en busca de conflictos de números de campo, violaciones de reserved y errores de sintaxis - gratis, local en el navegador.

Open tool

Herramientas, soporte de lenguajes y ecosistema

Ambos formatos tienen ecosistemas maduros, pero se ven muy diferentes. Las herramientas de JSON Schema son ligeras y omnipresentes - casi cada lenguaje importante tiene al menos una librería de validación bien mantenida. Las herramientas de Protobuf son más profundas y con más opiniones, centradas en el compilador `protoc` y un ecosistema creciente de plugins.

Ecosistema JSON Schema

  • JavaScript/TypeScript: AJV (el validador más rápido), Zod (tipos schema-first), Yup, Joi.
  • Python: jsonschema, pydantic (vía exportación JSON Schema), cerberus.
  • Java: everit-org/json-schema, networknt/json-schema-validator.
  • Go: qri-io/jsonschema, xeipuuv/gojsonschema.
  • OpenAPI: JSON Schema es la base de los esquemas de cuerpo de petición/respuesta de OpenAPI 3.x.
  • Soporte IDE: La mayoría de editores (VS Code, IntelliJ) autocompletan y validan archivos JSON contra un esquema referenciado.

Ecosistema Protobuf

  • Soporte oficial: Google mantiene plugins de protoc para C++, Java, Python, Go, Ruby, C#, Objective-C, JavaScript, PHP, Kotlin y Dart.
  • gRPC: Protobuf es el formato de transporte nativo para gRPC - los dos están profundamente integrados.
  • buf.build: Cadena de herramientas Protobuf moderna que reemplaza los flujos de protoc con un registro, linter y detector de cambios rompedores.
  • Plugins de la comunidad: protoc-gen-go-grpc, protoc-gen-validate, protoc-gen-openapiv2, protoc-gen-doc.
  • Registros de esquemas: Confluent y AWS soportan Protobuf junto a Avro y JSON Schema en pipelines de streaming.

El formato de esquema correcto es el que tu equipo realmente mantendrá. Un JSON Schema bien aplicado en un lenguaje que todos pueden leer supera a un esquema Protobuf que nadie actualiza.

- Notas de ingeniería de Aback Tools

Comparando la experiencia de desarrollador

AspectoJSON SchemaProtobuf
Curva de aprendizajeBaja - sintaxis JSON, sin compiladorMedia - IDL, protoc, plugins
Generación de código✗ No - solo validación en runtime✓ Sí - stubs fuertemente tipados
Transporte gRPC✗ No aplicable✓ Nativo - usado por defecto
Integración REST API✓ Nativa vía OpenAPI⚠ Requiere capa de transcodificación
Mensajes de error✓ Detallados, errores con ruta de campo⚠ Errores de tipo en compilación
Herramientas binarias necesarias✗ No✓ Sí - protoc o buf
Inspeccionabilidad del payload✓ Cualquier editor de texto✗ Requiere proto + decodificador

Cuándo usar JSON Schema

JSON Schema es la elección correcta en la mayoría de las situaciones que los desarrolladores web encuentran a diario. Su principal ventaja es que opera sobre JSON - el formato que tu API casi con certeza ya usa - sin requerir cambios de serialización, pasos de generación de código ni herramientas binarias.

Casos de uso fuertes para JSON Schema

  • APIs REST públicas: JSON Schema impulsa los esquemas de OpenAPI 3.x. Cada cuerpo de petición y respuesta en tu spec de OpenAPI se describe usando palabras clave de JSON Schema.
  • Validación de archivos de configuración: Valida `package.json`, `tsconfig.json`, configs de CI/CD y `.vscode/settings.json` usando JSON Schema - VS Code lo soporta nativamente vía referencias `$schema`.
  • Validación de formularios: Valida payloads de formularios complejos multi-campo en el servidor con reglas condicionales y dependencias entre campos que Protobuf no puede expresar.
  • Arquitecturas dirigidas por eventos: Describe formas de eventos en un registro de esquemas usando JSON Schema junto a Avro para topics de Kafka.
  • Reglas de validación dinámicas: Los documentos JSON Schema son JSON plano y pueden cargarse, modificarse o componerse en runtime - los esquemas Protobuf son artefactos de compilación.
  • Validación de salida de LLM: Valida y sanitiza salidas estructuradas de modelos de lenguaje contra un JSON Schema antes de confiar en ellas en la lógica de negocio.

El Generador de JSON Schema en Aback Tools puede inferir un esquema de cualquier payload JSON de ejemplo en segundos - dándote un primer borrador funcional que luego puedes ajustar con arrays `required`, límites `minimum`/`maximum` y restricciones `pattern`. Combínalo con el Validador JSON para probar documentos candidatos contra el esquema antes de desplegar.

Tip

Usa el [convertidor JSON a Zod Schema](/tools/data/converters/json-to-zod-schema) si trabajas en TypeScript y quieres validación en runtime con inferencia de tipos estática. Los esquemas Zod interoperan con JSON Schema y ofrecen mejor ergonomia TypeScript que usar AJV directamente.

Cuándo usar Protobuf

Protobuf justifica su sobrecarga de complejidad cuando la eficiencia del cable y la generación de código son requisitos estrictos. Si tu equipo ya usa gRPC, la elección es directa - Protobuf es el transporte por defecto y no hay alternativa significativa. Fuera de gRPC, la justificación para adoptar Protobuf suele ser uno de tres escenarios.

Casos de uso fuertes para Protobuf

  • Microservicios gRPC: Protobuf es el transporte nativo de gRPC. Las definiciones de servicio en `.proto` generan tanto los stubs de cliente como la interfaz del servidor en todos los lenguajes soportados.
  • Pipelines de datos de alto rendimiento: Codificar miles de millones de filas al día en un pipeline Kafka, un almacén de series temporales o un sistema de agregación de logs es materialmente más barato con Protobuf que con JSON.
  • APIs móviles: Reducir el tamaño del payload en redes móviles tiene un impacto directo en el rendimiento percibido y los costes de datos - los payloads Protobuf son 2-5× más pequeños que JSON.
  • Sistemas políglotas: `protoc` genera código idiomático y fuertemente tipado para una docena de lenguajes desde una única fuente de verdad - sin definiciones de tipos manuales que mantener sincronizadas.
  • Almacenamiento de datos versionado: Protobuf se usa para codificar datos en formatos de almacenamiento como LevelDB y filas de Cassandra donde importa una codificación binaria compacta y versionada por esquema.

Si estás empezando un proyecto Protobuf en 2026, vale la pena evaluar `buf.build` como reemplazo del `protoc` puro. Proporciona un registro gestionado, un linter que aplica mejores prácticas, detección de cambios rompedores entre versiones de esquema y un CLI consistente - todos problemas que de otro modo resolverías manualmente. Usa el Formateador Protobuf en Aback Tools para limpiar el formato de archivos `.proto` antes de hacer commit, y el Verificador de Huecos de Números de Campo Protobuf para detectar violaciones de números reservados antes de que lleguen a tu pipeline de CI.

Warning

Evita adoptar Protobuf puramente por rendimiento sin medir primero. El parseo JSON en runtimes modernos (V8, JVM, Go) está muy optimizado. Ejecuta un benchmark realista con tus tamaños de payload y volúmenes de peticiones reales antes de comprometerte con la sobrecarga operativa de un formato binario.

Resumen de decisión

Si tu prioridad es…Elige
Validación de APIs REST públicasJSON Schema
Comunicación de servicios gRPCProtobuf
Reglas de validación ricas (patrones, rangos)JSON Schema
Tamaño de payload mínimo y codificación rápidaProtobuf
Documentación OpenAPI / SwaggerJSON Schema
Generación de código políglotaProtobuf
Validación de archivos de configuraciónJSON Schema
Pipelines de streaming de alto rendimientoProtobuf
Depurabilidad fácil en logsJSON Schema
Evolución de esquemas sin coordinaciónProtobuf

Formateador Protobuf

Formatea y embellece archivos .proto con indentación correcta, alineación de campos y estilo consistente - funciona completamente en tu navegador.

Open tool

Key takeaways

  • JSON Schema valida texto JSON en runtime - es ideal para APIs REST, archivos de configuración y entradas de formulario donde importan las reglas de restricción ricas.
  • Protobuf es un formato de serialización binario que destaca en velocidad, payloads compactos y generación de código multi-lenguaje - la elección natural para gRPC y pipelines de alto rendimiento.
  • Los payloads Protobuf son 2-5× más pequeños y serializan 3-10× más rápido que el JSON equivalente, pero el formato binario es opaco y requiere herramientas para inspeccionarlo.
  • JSON Schema soporta lógica condicional, patrones regex y reglas entre campos que el sistema de tipos nativo de Protobuf no puede expresar - cubre el hueco con protoc-gen-validate si es necesario.
  • Protobuf tiene evolución de esquemas integrada vía números de campo; JSON Schema no tiene formato de cable, así que la evolución requiere estrategias de versionado explícitas.
  • Los dos formatos son complementarios - muchos sistemas en producción usan Protobuf para llamadas internas entre servicios y JSON Schema para la validación de APIs públicas.
  • Valida archivos .proto con el Validador Protobuf y genera JSON Schemas rápidamente con el Generador de JSON Schema en Aback Tools.

Preguntas frecuentes

JSON Schema is a vocabulary for describing and validating the structure of JSON documents. It validates human-readable JSON payloads at runtime and is used primarily for API request/response validation and configuration file checking. Protobuf (Protocol Buffers) is a binary serialization format from Google that defines data structures in .proto files and compiles them into strongly-typed code. JSON Schema works with text-based JSON; Protobuf encodes data in a compact binary format. The two solve overlapping but distinct problems.

Yes, significantly. Protobuf serialization is typically 3-10× faster than JSON encoding and the binary output is 2-5× smaller than equivalent JSON. These gains come from binary encoding (no string parsing), field tags instead of field names, and varint encoding for integers. The performance advantage is most visible at high throughput - gRPC services processing millions of requests per hour see meaningful latency and bandwidth reductions compared to REST/JSON endpoints with the same data volume.

JSON Schema cannot replace Protobuf because they serve different roles. JSON Schema validates JSON text - it has no serialization format of its own. Protobuf defines both the schema (the .proto file) and the binary wire format. If you need compact binary serialization, cross-language code generation, or gRPC transport, JSON Schema is not a substitute. However, JSON Schema is more expressive for validation: it can enforce string patterns, value ranges, conditional rules, and composition logic that Protobuf's type system cannot express.

JSON Schema is significantly easier to debug. JSON payloads are human-readable text that you can inspect in any browser, terminal, or log viewer. Schema validation errors include exact field paths and constraint descriptions. Protobuf binary payloads are opaque bytes - you need the original .proto file and a decoder tool to read them. For developer experience and troubleshooting in API workflows, JSON remains the clearer choice; Protobuf is preferred when performance and payload size outweigh debuggability.

Not natively. Protobuf enforces type safety at the code-generation level - a field declared as int32 cannot hold a string, for example - but it does not support rich validation rules like required string patterns, minimum/maximum values, or conditional field requirements. Libraries like protoc-gen-validate (PGV) extend Protobuf with validation annotations, bringing it closer to JSON Schema's validation depth. For most teams using Protobuf, PGV or a separate validation layer handles the business-rule constraints that Protobuf's type system cannot express.

The best browser-based option is the Aback Tools JSON Validator, which checks JSON syntax and structure locally in your browser without uploading your data to any server. For JSON Schema-specific validation (checking a JSON document against a JSON Schema definition), the JSON Schema Generator tool on Aback Tools can produce a schema from a sample payload, which you can then use to validate other documents. For advanced schema authoring, the official validator at jsonschema.dev runs AJV in the browser.

Use Protobuf when payload size and serialization speed are hard constraints - typically in internal microservice communication, mobile APIs with bandwidth limits, or high-throughput data pipelines. Protobuf is the natural choice when you are building gRPC services, since gRPC uses Protobuf as its default transport format. It is also the right call when you need strict, auto-generated, strongly typed client and server code across multiple languages with a guarantee of wire compatibility.

Protobuf handles schema evolution through field numbers. Each field has a unique integer tag, and old clients simply ignore unknown field numbers from newer schemas. Fields can be added or removed without breaking existing binaries, provided you follow the rules: never reuse a field number, and mark removed fields as reserved. JSON Schema has no built-in concept of backwards compatibility - it validates a document against a specific schema version. Managing evolution requires versioning the schema file and updating all validators together.

ShareXLinkedIn