1 Escapar caracteres especiales de valores de macro LLD en JSONPath

Cuando se utilizan macros de descubrimiento de bajo nivel en el preprocesamiento de JSONPath y sus valores se resuelven, se aplican las siguientes reglas para escapar caracteres especiales:

  • sólo se consideran los caracteres de barra invertida (\) y comillas dobles (") para escapar;
  • si el valor de macro resuelto contiene estos caracteres, cada uno de ellos se escapa con una barra invertida;
  • si ya están escapados con barra invertida, no se considera escapado y tanto la barra invertida como el siguiente caracter especial se escapan una vez más.

Por ejemplo:

JSONPath Valor de macro LLD Después de la sustitución
$.[?(@.value == "{#MACRO}")] special "value" $.[?(@.value == "special \"value\"")]
c:\temp $.[?(@.value == "c:\\temp")]
a\\b $.[?(@.value == "a\\\\b")]

Cuando se utiliza en la expresión la macro que puede tener caracteres especiales debe estar entre comillas dobles:

JSONPath Valor de macro LLD Después de la sustitución Resultado
$.[?(@.value == "{#MACRO}")] special "value" $.[?(@.value == "special \"value\"")] OK
$.[?(@.value == {#MACRO})] $.[?(@.value == special \"value\")] Bad JSONPath expression

Cuando se utiliza en la ruta, la macro que puede tener caracteres especiales debe estar entre corchetes y comillas dobles:

JSONPath Valor de macro LLD Después de la sustitución Resultado
$.["{#MACRO}"].value c:\temp $.["c:\\temp"].value OK
$.{#MACRO}.value $.c:\\temp.value Bad JSONPath expression