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)]