1 Speciālo rakstzīmju atsoļošana no LLD makro vērtībām JSONPath
Kad JSONPath priekšapstrādē tiek izmantoti zema līmeņa atklāšanas makro un to vērtības tiek aizstātas, tiek piemēroti šādi speciālo rakstzīmju atsoļošanas noteikumi:
- atsoļošanai tiek ņemtas vērā tikai atpakaļējā slīpsvītra (\) un dubultpēdiņa (") rakstzīmes;
- ja aizstātā makro vērtība satur šīs rakstzīmes, katra no tām tiek atsoļota ar atpakaļējo slīpsvītru;
- ja tās jau ir atsoļotas ar atpakaļējo slīpsvītru, tas netiek uzskatīts par atsoļošanu, un gan atpakaļējā slīpsvītra, gan tai sekojošā speciālā rakstzīme tiek atsoļota vēlreiz.
Piemēram:
| JSONPath | LLD makro vērtība | Pēc aizstāšanas |
|---|---|---|
| $.[?(@.value == "{#MACRO}")] | special "value" | $.[?(@.value == "special \"value\"")] |
| c:\temp | $.[?(@.value == "c:\\temp")] | |
| a\\b | $.[?(@.value == "a\\\\b")] |
Ja makro tiek izmantots izteiksmē, makro, kurā var būt speciālās rakstzīmes, jāieliek dubultpēdiņās:
| JSONPath | LLD makro vērtība | Pēc aizstāšanas | Rezultāts |
|---|---|---|---|
| $.[?(@.value == "{#MACRO}")] | special "value" | $.[?(@.value == "special \"value\"")] | OK |
| $.[?(@.value == {#MACRO})] | $.[?(@.value == special \"value\")] | Nederīga JSONPath izteiksme |
Ja makro tiek izmantots ceļā, makro, kurā var būt speciālās rakstzīmes, jāieliek kvadrātiekavās un dubultpēdiņās:
| JSONPath | LLD makro vērtība | Pēc aizstāšanas | Rezultāts |
|---|---|---|---|
| $.["{#MACRO}"].value | c:\temp | $.["c:\\temp"].value | OK |
| $.{#MACRO}.value | $.c:\\temp.value | Nederīga JSONPath izteiksme |