[comment]: # ({2a528a18-c19f94bc})
# 1 Escape dei caratteri speciali dai valori delle macro LLD in JSONPath

Quando le macro di low-level discovery vengono utilizzate nel preprocessing JSONPath e
i loro valori vengono risolti, si applicano le seguenti regole di escape dei caratteri
speciali:

-   solo i caratteri barra rovesciata (\\) e virgolette doppie (") vengono considerati
    per l'escape;
-   se il valore della macro risolta contiene questi caratteri, ciascuno di essi
    viene preceduto da una barra rovesciata;
-   se sono già preceduti da una barra rovesciata, ciò non viene considerato
    come escape e sia la barra rovesciata sia il carattere speciale
    successivo vengono nuovamente sottoposti a escape.

Per esempio:

|JSONPath|Valore macro LLD|Dopo la sostituzione|
|--------|---------------|------------------|
|$.\[?(@.value == "{\#MACRO}")\]|special "value"|$.\[?(@.value == "special \\"value\\"")\]|
|^|c:\\temp|$.\[?(@.value == "c:\\\\temp")\]|
|^|a\\\\b|$.\[?(@.value == "a\\\\\\\\b")\]|

Quando viene utilizzata nell'espressione, la macro che può contenere caratteri speciali
deve essere racchiusa tra virgolette doppie:

|JSONPath|Valore macro LLD|Dopo la sostituzione|Risultato|
|--------|--------|--------|--------|
|$.\[?(@.value == "{\#MACRO}")\]|special "value"|$.\[?(@.value == "special \\"value\\"")\]|OK|
|$.\[?(@.value == {\#MACRO})\]|^|$.\[?(@.value == special \\"value\\")\]|**Espressione JSONPath non valida**|

Quando viene utilizzata nel percorso, la macro che può contenere caratteri speciali
deve essere racchiusa tra parentesi quadre **e** virgolette doppie:

|JSONPath|Valore macro LLD|Dopo la sostituzione|Risultato|
|--------|--------|--------|--------|
|$.\["{\#MACRO}"\].value|c:\\temp|$.\["c:\\\\temp"\].value|OK|
|$.{\#MACRO}.value|^|$.c:\\\\temp.value|**Espressione JSONPath non valida**|

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