[comment]: # ({2a528a18-c19f94bc})
# 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
    como escapar y tanto la barra invertida y los siguientes caracteres especiales
    se escapan una vez más.

Por ejemplo:

|JSONPath|Valor de macro LLD|Después de la sustitución|
|--------|---------------|------------------|
|$.\[?(@.value == "{\#MACRO}")\]|"valor" especial|$.\[?(@.value == "\\"valor\\" especial") \]|
|^|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}")\]|especial "valor"|$.\[?(@.value == "especial \\"valor\\"") \]|Aceptar|
|$.\[?(@.value == {\#MACRO})\]|^|$.\[?(@.value == especial \\"value\\")\]|**JSONPath incorrecto expresión**|

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}"\].valor|c:\\temp|$.\["c:\\\\temp"\].valor|OK|
|$.{\#MACRO}.value|^|$.c:\\\\temp.value|**Expresión JSONPath incorrecta**|

[comment]: # ({/2a528a18-c19f94bc})
