Validador de JSON Schema
Resumen
JSON Schema Validator es una herramienta poderosa para validar datos JSON contra esquemas predefinidos. Asegura que sus datos JSON se ajusten a estructuras esperadas, tipos de datos y restricciones.
Características
Palabras clave de JSON Schema admitidas
- type: Valida el tipo de datos (string, number, integer, boolean, array, object, null)
- properties: Define esquemas de propiedades de objetos
- required: Especifica propiedades de objeto requeridas
- additionalProperties: Controla si se permiten propiedades adicionales
- items: Define esquemas de elementos de matriz (esquema único o validación de tupla)
- minItems / maxItems: Establece restricciones de longitud de matriz
- uniqueItems: Requiere que todos los elementos de la matriz sean únicos
- enum: Restringe valores a un conjunto específico
- const: Requiere un valor constante exacto
- minimum / maximum: Establece restricciones de rango numérico
- exclusiveMinimum / exclusiveMaximum: Límites numéricos exclusivos
- multipleOf: Requiere que los valores sean múltiplos de un número
- minLength / maxLength: Establece restricciones de longitud de cadena
- pattern: Valida cadenas contra patrones regex
- format: Valida formatos integrados (email, uri, etc.)
- allOf: Los datos deben coincidir con todos los subesquemas
- anyOf: Los datos deben coincidir con al menos un subesquema
- oneOf: Los datos deben coincidir con exactamente un subesquema
- $ref: Referencia a otro esquema (soporte básico)
Ejemplo de Uso
Validación básica de objetos
Datos JSON:
{
"nombre": "Juan",
"edad": 30,
"email": "[email protected]"
}
JSON Schema:
{
"type": "object",
"properties": {
"nombre": { "type": "string", "minLength": 1 },
"edad": { "type": "integer", "minimum": 0, "maximum": 150 },
"email": { "type": "string", "format": "email" }
},
"required": ["nombre", "edad"]
}
Validación de matriz
Datos JSON:
{
"etiquetas": ["javascript", "typescript", "vue"]
}
JSON Schema:
{
"type": "object",
"properties": {
"etiquetas": {
"type": "array",
"items": { "type": "string" },
"minItems": 1,
"uniqueItems": true
}
}
}
Versiones de JSON Schema admitidas
- draft-04
- draft-06
- draft-07
- 2019-09
- 2020-12