JSONPathUtil
es una utilidad para trabajar con JSON y JSONPath en Java, permitiendo realizar consultas, verificaciones y lecturas sobre datos JSON utilizando expresiones JSONPath.
Esta clase ofrece las siguientes funcionalidades:
- exists: Verifica si un atributo y/o valor de un atributo existe en el JSON para el JSONPath dado.
- read: Lee el valor del JSON en la ruta especificada y devuelve el objeto.
- readWithDefault: Lee un valor de un JSON usando un JSONPath dado, y en caso de no encontrar el valor, devuelve un valor predeterminado.
- isValidJson: Verifica si el JSON es válido.
- isValidPath: Verifica si el JSONPath dado es válido.
Para los ejemplos a continuación, utilizamos el siguiente JSON como entrada:
{
"firstName": "John",
"lastName": "doe",
"age": 26,
"address": {
"streetAddress": "naist street",
"city": "Nara",
"postalCode": "630-0192"
},
"phoneNumbers": [
{
"type": "iPhone",
"number": "0123-4567-8888"
},
{
"type": "home",
"number": "0123-4567-8910"
}
]
}
Este método verifica si un valor específico existe en el JSON utilizando una expresión JSONPath. Retorna true
si el valor existe, y false
si no.
String jsonString = "{...}"; // JSON de prueba
String jsonPath = "$.firstName"; // Path al valor "firstName"
boolean exists = JSONPathUtil.exists(jsonString, jsonPath);
true
Si el valor no existe, retornará false
.
Este método lee el valor en la ruta especificada y devuelve el objeto asociado. Si ocurre algún error o no se encuentra el valor, devuelve:
"ERROR_READ"
String jsonString = "{...}"; // JSON de prueba
String jsonPath = "$.address.city"; // Path al valor "city" en "address"
String result = JSONPathUtil.read(jsonString, jsonPath);
jsonPath: $.address.city
"Nara"
Si no se encuentra el valor o hay un error, retornará
"ERROR_READ"
Este método lee un valor de un JSON usando el JSONPath dado. Si no se encuentra el valor, devuelve un valor predeterminado especificado por el usuario.
String jsonString = "{...}"; // JSON de prueba
String jsonPath = "$.address.country"; // Path inexistente
String defaultValue = "Unknown";
String result = JSONPathUtil.readWithDefault(jsonString, jsonPath, defaultValue);
"Unknown"
Si el valor existe, retornará el valor encontrado. Si no existe, retornará el valor predeterminado.
Este método verifica si el JSON dado es válido. Retorna true
si el JSON es válido, y false
si no lo es.
String jsonString = "{...}"; // JSON de prueba
boolean isValid = JSONPathUtil.isValidJson(jsonString);
true
Si el JSON es inválido, retornará false
.
Este método verifica si la expresión JSONPath dada es válida. Retorna true
si el JSONPath es válido y false
si es inválido.
String jsonPath = "$.address.streetAddress"; // JSONPath válido
boolean isValidPath = JSONPathUtil.isValidPath(jsonPath);
true
Si el JSONPath es inválido, retornará false
.
Para instalar la librería, primero se tiene que ir a la carpeta del proyecto, luego en la terminal ejecutar el comando:
mvn clean install
Te va a generar una carpeta target
donde se encuentra el JPATH1.8-2.jar
, luego sigue estos pasos para instalarlo en IDM:
- Accede al servidor donde esté instalado IDM.
- Copia el archivo descargado al servidor del motor, en la ruta:
/opt/novell/eDirectory/lib/dirxml/classes.
- Otorga permisos de ejecución al archivo usando el siguiente comando:
chmod +x JPATH1.8-1.0.jar.
Además, es importante asegurarse de incluir la librería JSONPath para que los métodos funcionen correctamente dentro de las reglas donde se vayan a usar. La inclusión de esta librería debe realizarse de la siguiente manera:
La versión actual es compatible con Java 8. Si no tienes esta versión instalada, será necesario instalarla o actualizarla. Para poder ejecutarlo y probarlo puedes ejecuar el siguiente comando:
java -jar JPATH1.8-2.jar
Para más información del uso de la sintaxis visitar: Repo de JsonPath -> versión 2.9.0