Java 后查询的动态筛选准则

Java 后查询的动态筛选准则,java,json,data-structures,dynamic,enumeration,Java,Json,Data Structures,Dynamic,Enumeration,我需要一个使用post查询west Web服务的动态筛选条件 给你举个例子 { "fields": [ "field":"firstName", "field":"lastName" ] , "filters": [ filter{"field":"firstName", "operation":"EQ",

我需要一个使用post查询west Web服务的动态筛选条件

给你举个例子

{
  "fields": [
             "field":"firstName",
             "field":"lastName"
            ]
,
  "filters": 
           [
              filter{"field":"firstName",
                     "operation":"EQ",
                     "value":"FIRSTNAME"
                    },
              filter{"field":"LastName",
                     "operation":"LIKE",
                     "value":["FIRSTNAME"]
                    },
              filter{"field":"address",
                     "operation":"IN",
                     "value":["1","2","3","4"]
                    },
           ]
}
请注意操作“EQ”,它只有一个字符串,对于其余的过滤器,您需要一个列表


基于操作,我希望值可以是列表或单个字符串,如何在java中动态构建它,可能吗。

是的,可能,但永远不要这样做()

相反,以一种清晰的方式设计输入,这样用户就知道可以选择将多个值放在那里。可以命名一个字段
值列表


不要创建自定义适配器、工厂注册表或自定义反序列化程序,只需重新设计即可。另外,也不要朝相反的方向走——这将是接受一个列表,即使使用
EQ
参数,您只需要一个元素,只是为了简化模型。编写代码比较容易,但最终用户会感到困惑。

我自己的解决方案有一个抽象类作为过滤器,然后为list和not list分别添加了两个过滤器类,工作非常出色。

单字符串“这是什么意思?请注意操作“EQ”,它只有一个字符串,对于其余的过滤器,您需要一个列表