This is a translation of the original English documentation page. Help us make it better.

Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

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