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