0

JSON データがあり、JSONPath で論理否定演算子を使用したいのですが、入力文字列が JSONPath クエリに変換する多くのフィルターで構成されているため、動的に使用したいと考えています。

v1/movie?filter=not metadata.sample eq "NETFLIX"このように私は APY を使用しています。[?(!(@['metadata']['PLM-CODE'] == 'NETFLIX'))]これは、JSONPath の Filter オブジェクトを使用するように変換する必要があります。

今、これは完全に機能します

JsonPath.using(configuration).parse(jsonString).read("$.data[?(!(@['metadata']['PLM-CODE'] == 'NETFLIX'))]",typeRef);

!しかし、以下のコードを使用する場合、直接追加することはできません:

String stringFilter = rightPred.toString();
String notFilterString = "[?(!" + stringFilter.substring(2,stringFilter.length()-1) + ")]";
return Filter.parse(notFilterString);

しかし、パースはそれをに変換しています[?(@['metadata']['PLM-CODE'] == 'NETFLIX' ! null)]

4

0 に答える 0