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.

JsonSchema y validación.

¡Colegas! Estoy intentando usar jsonSchema para la validación de un objeto de entrada (Json como cadena). Pero tengo un problema con el siguiente mensaje: com.networknt.schema.JsonSchemaException: java.lang.UnsupportedOperationException: No hay un validador adecuado para id.

Mi schema es así:

    ```
{
      "type" : "object",
      "id" : "urn:jsonschema:x:x:x:x:x:x:x:x:Nombre_de_clase",
      "properties" : {
    ///objetos 
      }
    }
```

Y el código con el que intento validar:


JsonSchemaFactory factory = JsonSchemaFactory.getInstance(VersionFlag.V201909);
InputStream stream=TestClass.class.getResourceAsStream("/file.json");
JsonSchema schema=factory.getSchema(stream);
JsonNode node =mapper.convertToJsonNode(MyObject.builder().build());
Set validationResult = schema.validate(node);

Mi objetivo: si los campos se ingresan incorrectamente, producir una lista de todos estos campos en la respuesta. Por favor, díganme qué estoy haciendo mal y si hay otras opciones para validar todas las claves json (no los valores).

Biblioteca actual:



com.networknt
json-schema-validator
1.0.63

¡Gracias!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    ¡Hola!

    Basándonos en el mensaje de error que proporcionaste, parece que el validador es incapaz de encontrar un validador adecuado para el campo “id” en tu esquema JSON. Una solución potencial a este problema es quitar el campo “id” de tu esquema y volver a intentarlo.

    En cuanto a tu objetivo de generar una lista de campos ingresados incorrectamente, una opción podría ser iterar a través del objeto JSON y validar cada campo individualmente. Además, podrías considerar el uso de una Biblioteca de Validación diferente que admita esta función, como la biblioteca “javax.validation”.

    ¡Espero que esto ayude!

Comments are closed.