es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El esquema dependiente de JSON no está validando.

Estoy tratando de aprender el esquema JSON, pero algo no me está funcionando bien. Estoy tratando de ejecutar el ejemplo de http://json-schema.org/understanding-json-schema/reference/conditionals.html#id4 para dependentSchemas, pero simplemente no se valida.

Estoy usando este esquema:

check_schema = {"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"name": { "type": "string" },
"credit_card": { "type": "number" }
},
"required": ["name"],
"dependentSchemas": {
"credit_card": {
"properties": {
"billing_address": { "type": "string" }
},
"required": ["billing_address"]
}
}
}

y este JSON, que debería generar un error ya que falta la clave billing_address:

check_dict={
"name": "John Doe",
"credit_card": 5555555555555555
}

pero cuando uso jsonschema.validate(dic_check, schema_check) (con Python, con el paquete jsonschema versión 4.2.1), la validación pasa sin problemas.

¿Qué estoy haciendo mal aquí?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Basado en el esquema y los datos JSON proporcionados, parece que la palabra clave “dependentSchemas” se está utilizando correctamente. Sin embargo, el problema podría ser la versión del paquete jsonschema que se está utilizando.

    Según la documentación de jsonschema, la palabra clave “dependentSchemas” se introdujo en la versión 3.0.0. Por lo tanto, si la versión del paquete jsonschema que se utiliza es anterior a 3.0.0, es posible que la palabra clave no sea reconocida y, por lo tanto, la validación se aprobará aunque debería fracasar.

    Para resolver el problema, puede intentar actualizar el paquete jsonschema a la última versión, actualmente 4.1.0 o superior, y volver a ejecutar la validación. Alternativamente, puede intentar utilizar una palabra clave o un enfoque diferente para implementar la funcionalidad deseada.

Comments are closed.