This is a translation of the original English documentation page. Help us make it better.

Échapper les caractères spéciaux des valeurs de macro LLD dans JSONPath

Lorsque des macros de découverte de bas niveau sont utilisées dans le prétraitement JSONPath et que leurs valeurs sont résolues, les règles suivantes d'échappement des caractères spéciaux sont appliquées :

  • seuls les antislash (\) et guillemets doubles ("") sont pris en compte pour l'échappement ;
  • si la valeur de la macro résolue contient ces caractères, chacun d'eux est échappé avec un backslash (/) ;
  • s'ils sont déjà échappés avec un backslash, celui-ci n'est pas considérée comme échappé et le backslash ainsi que les caractères spéciaux suivants sont à nouveau échappés.

Par exemple :

JSONPath valeur de la macro LLD Après substitution
$.[?(@.value == "{#MACRO}")] special "value" $.[?(@.value == "special \"value\"")]
c:\temp $.[?(@.value == "c:\\temp")]
a\\b $.[?(@.value == "a\\\\b")]

Lorsqu'elle est utilisée dans l'expression, la macro pouvant contenir des caractères spéciaux doit être placée entre guillemets :

JSONPath valeur de la macro LLD Après substitution Résultat
$.[?(@.value == "{#MACRO}")] special "value" $.[?(@.value == "special \"value\"")] OK
$.[?(@.value == {#MACRO})] $.[?(@.value == special \"value\")] Bad JSONPath expression

Lorsqu'elle est utilisée dans le chemin, la macro pouvant contenir des caractères spéciaux doit être placée entre crochets ** et ** guillemets :

JSONPath valeur de la macro LLD Après substitution Résultat
$.["{#MACRO}"].value c:\temp $.["c:\\temp"].value OK
$.{#MACRO}.value $.c:\\temp.value Bad JSONPath expression