[comment]: # ({2a528a18-c19f94bc})
# 1 Escapowanie znaków specjalnych z wartości makr LLD w JSONPath

Gdy makra wykrywania niskiego poziomu są używane we wstępnym przetwarzaniu JSONPath i
ich wartości są rozwijane, stosowane są następujące reguły escapowania znaków
specjalnych:

-   tylko znaki backslash (\\) i cudzysłów (") są brane pod uwagę
    przy escapowaniu;
-   jeśli rozwinięta wartość makra zawiera te znaki, każdy z nich
    jest poprzedzany znakiem backslash;
-   jeśli są już poprzedzone znakiem backslash, nie jest to traktowane
    jako escapowanie i zarówno backslash, jak i następujące po nim znaki
    specjalne są escapowane ponownie.

Na przykład:

|JSONPath|Wartość makra LLD|Po podstawieniu|
|--------|---------------|------------------|
|$.\[?(@.value == "{\#MACRO}")\]|special "value"|$.\[?(@.value == "special \\"value\\"")\]|
|^|c:\\temp|$.\[?(@.value == "c:\\\\temp")\]|
|^|a\\\\b|$.\[?(@.value == "a\\\\\\\\b")\]|

W przypadku użycia w wyrażeniu makro, które może zawierać znaki specjalne,
powinno być ujęte w cudzysłowy:

|JSONPath|Wartość makra LLD|Po podstawieniu|Wynik|
|--------|--------|--------|--------|
|$.\[?(@.value == "{\#MACRO}")\]|special "value"|$.\[?(@.value == "special \\"value\\"")\]|OK|
|$.\[?(@.value == {\#MACRO})\]|^|$.\[?(@.value == special \\"value\\")\]|**Nieprawidłowe wyrażenie JSONPath**|

W przypadku użycia w ścieżce makro, które może zawierać znaki specjalne,
powinno być ujęte w nawiasy kwadratowe **oraz** cudzysłowy:

|JSONPath|Wartość makra LLD|Po podstawieniu|Wynik|
|--------|--------|--------|--------|
|$.\["{\#MACRO}"\].value|c:\\temp|$.\["c:\\\\temp"\].value|OK|
|$.{\#MACRO}.value|^|$.c:\\\\temp.value|**Nieprawidłowe wyrażenie JSONPath**|

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