単一のJSONPath式のみを使用して、ある種の「OR」または「||」を実行することは可能ですか?オペレーター。たとえば、次の2つのJSONPathブール式は、ログJSONファイルの重大度をチェックするために機能します。
$..log[?(@.severity == 'WARN')]
$..log[?(@.severity == 'Error')]
しかし、私は論理的に次のようなことをしたいと思います。
$..log[?(@.severity == 'WARN' or @.severity == 'Error')] //this is not correct
これを行う方法はありますか?
から JSONPathページ :
[、]-XPathのユニオン演算子は、ノードセットの組み合わせになります。 JSONPathでは、代替名または配列インデックスをセットとして使用できます。
試してみてください
$..log[?(@.severity == 'WARN'), ?(@.severity == 'Error')]
編集:論理積の 未解決の問題 とOR演算子がまだないことを示す演算子があるようですJSONPathでサポート。
Goessnerのパーサーを使用している場合は、式内で次のように||
演算子を使用できます。
$..log[?(@.severity == 'WARN' || @.severity == 'Error')]