[comment]: # ({2a528a18-c19f94bc})
# 1 Escape de caracteres especiales de valores de macros LLD en JSONPath

Cuando se utilizan macros de bajo nivel (LLD) en el preprocesamiento de JSONPath y
se resuelven sus valores, se aplican las siguientes reglas de escape de
caracteres especiales:

-   solo se consideran para escape los caracteres barra invertida (\\) y comillas dobles (");
-   si el valor de la macro resuelta contiene estos caracteres, cada uno de ellos
    se escapa con una barra invertida;
-   si ya están escapados con una barra invertida, no se considera
    como escape y tanto la barra invertida como el carácter especial siguiente
    se escapan una vez más.

Por ejemplo:

|JSONPath|Valor de macro LLD|Tras 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 ir entre comillas dobles:

|JSONPath|Valor de macro LLD|Tras sustitución|Resultado|
|--------|------------------|----------------|---------|
|$.\[?(@.value == "{\#MACRO}")\]|valor "especial"|$.\[?(@.value == "valor \\"especial\\"")\]|OK|
|$.\[?(@.value == {\#MACRO})\]|^|$.\[?(@.value == valor \\"especial\\")\]|**Expresión JSONPath incorrecta**|

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

|JSONPath|Valor de macro LLD|Tras sustitución|Resultado|
|--------|------------------|----------------|---------|
|$.\["{\#MACRO}"\].value|c:\\temp|$.\["c:\\\\temp"\].value|OK|
|$.{\#MACRO}.value|^|$.c:\\\\temp.value|**Expresión JSONPath incorrecta**|

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