Начиная с Zabbix 4.4.4, когда макросы низкоуровневого обнаружения используются в 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 выражение |