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