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

Quando macros de descoberta de baixo nível são usadas no pré-processamento JSONPath e seus valores são resolvidos, as seguintes regras de escape de caracteres especiais são aplicadas:

-   apenas barra invertida (\\) e aspas duplas (") são consideradas para escape;
-   se o valor da macro resolvida contiver esses caracteres, cada um deles será escapado com uma barra invertida;
-   se eles já estiverem escapados com uma barra invertida, isso não é considerado como escape e tanto a barra invertida quanto o caractere especial seguinte são escapados novamente.

Por exemplo:

|JSONPath|Valor da macro LLD|Após substituição|
|--------|------------------|-----------------|
|$.\[?(@.value == "{\#MACRO}")\]|special "value"|$.\[?(@.value == "special \\"value\\"")\]|
|^|c:\\temp|$.\[?(@.value == "c:\\\\temp")\]|
|^|a\\\\b|$.\[?(@.value == "a\\\\\\\\b")\]|

Quando usada na expressão, a macro que pode ter caracteres especiais deve ser colocada entre aspas duplas:

|JSONPath|Valor da macro LLD|Após substituição|Resultado|
|--------|--------|--------|--------|
|$.\[?(@.value == "{\#MACRO}")\]|special "value"|$.\[?(@.value == "special \\"value\\"")\]|OK|
|$.\[?(@.value == {\#MACRO})\]|^|$.\[?(@.value == special \\"value\\")\]|**Expressão JSONPath inválida**|

Quando usada no caminho, a macro que pode ter caracteres especiais deve ser colocada entre colchetes **e** aspas duplas:

|JSONPath|Valor da macro LLD|Após substituição|Resultado|
|--------|--------|--------|--------|
|$.\["{\#MACRO}"\].value|c:\\temp|$.\["c:\\\\temp"\].value|OK|
|$.{\#MACRO}.value|^|$.c:\\\\temp.value|**Expressão JSONPath inválida**|

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