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\")] | 错误的 JSONPath 表达式 |
在路径中使用时,可能包含特殊字符的宏应放在方括号 和 双引号中:
| JSONPath | LLD 宏值 | 替换后 | 结果 |
|---|---|---|---|
| $.["{#MACRO}"].value | c:\temp | $.["c:\\temp"].value | OK |
| $.{#MACRO}.value | $.c:\\temp.value | 错误的 JSONPath 表达式 |