[comment]: # translation:outdated

[comment]: # ({2a528a18-c19f94bc})
# 1 JSONPathのLLDマクロ値からの特殊文字のエスケープ

ローレベルディスカバリマクロがJSONPathの保存前処理で使用され、その値が解決される場合、次の特殊文字のエスケープ規則が適用されます。

-   バックスラッシュ(\\)と二重引用符(")文字のみがエスケープ対象として考慮されます。
-   解決されたマクロ値にこれらの文字が含まれている場合、それぞれの文字はバックスラッシュでエスケープされます。
-   すでにバックスラッシュでエスケープされている場合は、エスケープとみなされず、バックスラッシュとそれに続く特殊文字の両方がさらにエスケープされます。

例:

|JSONPath|LLDマクロの値|置換後|
|--------|---------------|------------------|
|$.\[?(@.value == "{\#MACRO}")\]|special "value"|$.\[?(@.value == "special \\"value\\"")\]|
|^|c:\\temp|$.\[?(@.value == "c:\\\\temp")\]|
|^|a\\\\b|$.\[?(@.value == "a\\\\\\\\b")\]|

式で使用する場合、特殊文字を含む可能性のあるマクロを二重引用符で囲む必要があります。

|JSONPath|LLDマクロの値|置換後|結果|
|--------|--------|--------|--------|
|$.\[?(@.value == "{\#MACRO}")\]|special "value"|$.\[?(@.value == "special \\"value\\"")\]|OK|
|$.\[?(@.value == {\#MACRO})\]|^|$.\[?(@.value == special \\"value\\")\]|**不正なJSONPathの式**|

特殊文字を含むマクロをパスで使用する場合は、角括弧**と**二重引用符で囲む必要があります。

|JSONPath|LLDマクロの値|置換後|結果|
|--------|--------|--------|--------|
|$.\["{\#MACRO}"\].value|c:\\temp|$.\["c:\\\\temp"\].value|OK|
|$.{\#MACRO}.value|^|$.c:\\\\temp.value|**不正なJSONPathの式**|

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