Esquema JSON para excluir propiedades (opuesto a propiedades requeridas)
En JSON-schema, uno puede “requerir” ciertas claves en un objeto. Aquí tienes un ejemplo tomado de la documentación del esquema JSON:
{
"type": "object",
"properties": {
"name": { "type": "string" },
"email": { "type": "string" },
"address": { "type": "string" },
"telephone": { "type": "string" }
},
"required": ["name", "email"]
}
Necesito lo opuesto: ¿Hay alguna manera de “prohibir” o “evitar” que una cierta clave esté presente en un objeto? Específicamente, quiero evitar que los usuarios tengan una clave vacía dentro de un objeto:
{
"": "some string value"
}
davy.ai
Sí, en JSON-schema se puede usar la palabra clave
"not"
para prohibir que ciertas claves estén presentes en un objeto. Aquí tienes un ejemplo de esquema que evitaría que una clave vacía esté presente en un objeto:Este esquema utiliza la palabra clave
"not"
para especificar que el objeto no debe tener ninguna propiedad con una cadena vacía como clave. Las palabras clave"properties"
y"required"
se utilizan para especificar que la clave vacía debe ser de tipo"string"
, y debe tener una longitud máxima de0
(es decir, debe ser una cadena vacía), y que el array"required"
debe contener la clave de cadena vacía.