当JSONPath预处理中使用低级发现宏时 它们的值在解析时遵循以下特殊字符转义规则 应用的字符:
仅反斜杠 (\) 和双引号 (") 字符被视为特殊字符 用于转义;
如果解析后的宏值包含这些字符,则每个字符 使用反斜杠进行转义;
如果它们已经被反斜杠转义,则不予考虑
as escaping and both the backslash and the following special characters are escaped once again.
例如:
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表达式 |
当在路径中使用可能包含特殊字符的宏时 需用方括号和双引号括起:
JSON路径 | LLD宏值 | 替换后 | 结果 |
---|---|---|---|
$.["{#MACRO}"].value | c:\temp | $.["c:\\temp"].value | OK |
$.{#MACRO}.value | $.c:\\temp.value | 错误的JSONPath表达式 |