1 Échappement des 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 s’appliquent :
- seuls les caractères barre oblique inverse (\) et guillemet double (") sont pris en compte pour l’échappement ;
- si la valeur de macro résolue contient ces caractères, chacun d’eux est échappé avec une barre oblique inverse ;
- s’ils sont déjà échappés par une barre oblique inverse, cela n’est pas considéré comme un échappement et la barre oblique inverse ainsi que les caractères spéciaux suivants sont à nouveau échappés.
Par exemple :
| JSONPath | Valeur de 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 susceptible de contenir des caractères spéciaux doit être placée entre guillemets doubles :
| JSONPath | Valeur de macro LLD | Après substitution | Résultat |
|---|---|---|---|
| $.[?(@.value == "{#MACRO}")] | special "value" | $.[?(@.value == "special \"value\"")] | OK |
| $.[?(@.value == {#MACRO})] | $.[?(@.value == special \"value\")] | Expression JSONPath incorrecte |
Lorsqu’elle est utilisée dans le chemin, la macro susceptible de contenir des caractères spéciaux doit être placée entre crochets et entre guillemets doubles :
| JSONPath | Valeur de macro LLD | Après substitution | Résultat |
|---|---|---|---|
| $.["{#MACRO}"].value | c:\temp | $.["c:\\temp"].value | OK |
| $.{#MACRO}.value | $.c:\\temp.value | Expression JSONPath incorrecte |