Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的拆分和验证比较表达式_Java_Json_Rest_Jax Rs - Fatal编程技术网

java中的拆分和验证比较表达式

java中的拆分和验证比较表达式,java,json,rest,jax-rs,Java,Json,Rest,Jax Rs,我正在建立一个休息服务。我的服务资源方法如下所示: public Response<List<AuditEvent>> getAuditEvents(@QueryParam("filters") List<AuditRequest.Filter> filters, @QueryParam("orderBy") @DefaultValue("id") String

我正在建立一个休息服务。我的服务资源方法如下所示:

public Response<List<AuditEvent>> getAuditEvents(@QueryParam("filters") List<AuditRequest.Filter> filters,
                                                 @QueryParam("orderBy") @DefaultValue("id") String order,
                                                 @QueryParam("isDesc") @DefaultValue("true") boolean desc,
                                                 @QueryParam("startTime") long startTimestamp,
                                                 @QueryParam("endTime") long endTimestamp,
                                                 @QueryParam("limit") @DefaultValue("20") int size,
                                                 @QueryParam("offset") @DefaultValue("0") int startIndex)
我还制作了一个过滤器类:

public static class Filter {
    private String propertyId;
    private String op;
    private Object value;
}


请建议我一种好的方法,将我在资源方法中得到的
List
转换为
List
,并验证每个字符串表达式是否有效。基本上,我需要一个解析器来将这个字符串表达式转换为我的筛选器对象,其中的运算符可以是任何有效的运算符。

我认为您的查询不够清晰

请考虑:

举几个例子:

  • name==“杀死比尔”;年份=gt=2003
  • name==“杀死比尔”和年份>2003
  • 类型=在=(科幻,动作);(导演=克里斯托弗·诺兰,演员=贝尔);年份=通用电气=2000年
  • 类型=科幻片、动作片和(导演='Christopher Nolan'或演员==*Bale)和年份>=2000
  • director.lastName==Nolan;年份=通用电气=2000年;年份=lt=2010年

如果您想编写自己的解决方案,请考虑矩阵变量: 过滤器=名称=abc;年龄>40岁


希望它能起作用。

我没说它错了。它不仅不清晰,而且倾斜太多(这里有太多的过滤器参数),明白你的意思了……但是如果我想把它作为queryparam中的一个列表,那么另一种方法是什么呢。因为如果我用这种方式,filters=name=abc;年龄>40岁;我必须用分隔符转换成列表。
public static class Filter {
    private String propertyId;
    private String op;
    private Object value;