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 |