Saltar al contenido

¿Cómo validar un objeto JSON en Java?

Solución:

Puede utilizar el validador Json: – https://github.com/fge/json-schema-validator

O simplemente puede intentar analizar el Json usando Google Gson y capturar la excepción de sintaxis para validarlo como se muestra a continuación:

try{
JsonParser parser = new JsonParser();
parser.parse(passed_json_string);
} 
catch(JsonSyntaxException jse){
System.out.println("Not a valid Json String:"+jse.getMessage());
}

Para la validación de datos genéricos, defina las reglas en su esquema Json y luego simplemente valide el Json entrante con este esquema.
En el esquema puede definir el tipo de valores que puede contener, rango, etc.
Para la generación de esquemas, puede utilizar una herramienta en línea como: – http://jsonschema.net/#/

Puede consultar esta publicación para tener una comprensión rápida del esquema json: – http://json-schema.org/example1.html

Ejemplo:-

"price": {
            "type": "number",
            "minimum": 0,
            "exclusiveMinimum": true
        }

El código anterior define el precio en el esquema Json, cuando el objeto Json se valida con este esquema, se asegurará de que el precio no sea cero, debería ser más de cero y debería ser un número. Si se pasa una cadena o un cero o algún valor negativo en el precio, la validación fallará.

import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;    
/**
         * 
         * @param inputJosn
         * @return
         * @throws IOException 
         * @throws JsonParseException 
         * @throws JsonProcessingException
         */
        private static boolean isJsonValid(String inputJosn) throws JsonParseException, IOException  {
            ObjectMapper mapper = new ObjectMapper();
            mapper.enable(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY);
            JsonFactory factory = mapper.getFactory();
            JsonParser parser = factory.createParser(inputJosn);
            JsonNode jsonObj = mapper.readTree(parser);
            System.out.println(jsonObj.toString());


            return true;
        }
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *