[comment]: # ({2a528a18-c19f94bc})
# 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**|

[comment]: # ({/2a528a18-c19f94bc})
