1 Escapar caràcters especials dels valors de macro LLD a JSONPath

Quan s'empren macros de descoberta de baix nivell en el preprocessament de JSONPath i es resolen els seus valors, s'apliquen les regles d'escapament de caràcters especials següents:

  • només les barres invertides (\) i les cometes dobles ("") es consideren per escapar;
  • si el valor de la macro resolta conté aquests caràcters, cadascun d'ells s'escapa amb una barra invertida (/);
  • si ja s'escapa amb una barra invertida, aquesta no es considera com a escapada i la barra invertida així com els caràcters especials següents es tornen a escapar.

Per exemple:

JSONPath Valor de la macro LLD Després de la substitució
$.[?(@.value == "{#MACRO}")] special "value" $.[?(@.value == "special \"value\"")]
c:\temp $.[?(@.value == "c:\\temp")]
a\\b $.[?(@.value == "a\\\\b")]

Quan s'empra a l'expressió, la macro que pot contindre caràcters especials s'ha de lliurar d'entre cometes:

JSONPath Valor de macro LLD Després de la substitució Resultat
$.[?(@.value == "{#MACRO}")] special "value" $.[?(@.value == "special \"value\"")] OK
$.[?(@.value == {#MACRO})] $.[?(@.value == special \"value\")] Bad JSONPath expression

Quan s'empra al camí, la macro que pot contindre caràcters especials s'ha de lliurar entre claudàtors i cometes:

JSONPath Valor de macro LLD Després de la substitució Resultat
$.["{#MACRO}"].value c:\temp $.["c:\\temp"].value OK
$.{#MACRO}.value $.c:\\temp.value Bad JSONPath expression