On this page
转义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\")] | Bad JSONPath expression | |
当在路径中使用宏时,可能有特殊字符的宏应该用方括号和双引号括起来:
| JSONPath | LLD宏值 替 | 后 结果 | |
|---|---|---|---|
| $.["{#MACRO}"].value | c:\temp | $.["c:\\temp"].value | OK |
| $.{#MACRO}.value | $.c:\\temp.value | Bad JSONPath expression | |