JPath para coincidencia de consulta parcial
Estoy tratando de aprender la consulta json jpath. He podido devolver datos basados en búsquedas exactas.
Por ejemplo en el sitio: https://jsonpath.com/ Puedo recuperar correctamente el tipo de teléfono según el número de teléfono:
JSON
{
"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"
}
]
}
Consulta
$.[?(@.number== '0123-4567-8888')].type
Sin embargo, no puedo encontrar ningún ejemplo que me muestre cómo hacer coincidir un resultado de búsqueda parcial. Estoy tratando de escribir una consulta en la que proporciono solo "0123" y, por lo tanto, obtengo "home" y "iPhone" como resultados. ¿Cómo puedo hacer esto?
Respuestas
Puede usar el operador de filtro de=~
coincidencia que permite proporcionar una expresión regular en lugar de un valor estricto, por lo que, dado que modifica su consulta, como:
$.phoneNumbers[?(@.number=~/.*0123.*/)].type
obtendrá ambos tipos como resultado:

Más información: Complemento JSON Path Extractor de JMeter : escenarios de uso avanzados