首页 > 解决方案 > 如何在 Spring Boot 中使用 JSON 数组创建过滤器

问题描述

我正在使用 Angular 8 作为前端,使用 Spring Boot 作为后端创建一个 Web 应用程序(我对 SpringBoot 编程很陌生)

我有一个表格,上面有一个“协议”列表和一个复选框过滤器。以下是网页截图:在此处输入图像描述

当我单击“应用过滤器”按钮时,它会生成一个 JSON 数组,如下所示:

[{subject_id:[2,3]},{scenario_id:[2]},{algorithms_id:[2]}]

现在,在后端,我想使用这个 JSON 数组创建一个过滤器,以便它只返回相应的协议。我想我必须在 java SpringBoot 中使用查询功能和@GetMapping。但我不知道如何为“协议”的每个属性指定使用哪个 JSON 项。如果你能给我一些关于如何做到这一点的建议,我将不胜感激。

标签: jsonspringspring-bootfilter

解决方案


为什么不创建一个带有字段的 Java 类 - Filter.java:

private List<String> subject_id=new ArrayList<>();
private List<String> scenario_id=new ArrayList<>();
private List<String> algorithms_id=new ArrayList<>();

然后用 RequestBody 编写一个 POST 控制器,例如:

@RequestMapping(value = "/myapi", method = RequestMethod.POST)
    public ResponseEntity<String> getResultsByFilter(
            @RequestBody(required = true) List<Filter> filters) 

这样,您可以在请求正文中获取过滤器,然后根据您的业务逻辑对其进行处理,以根据需要返回结果。


推荐阅读