根据属性值从Spring Boot列表中过滤对象

时间:2019-07-29 17:08:48

标签: java json spring spring-boot jackson

我有一个休息服务,该服务将返回List个对象

public class MyObject {
    private String name;
    private String state;
}

现在,我需要基于rest调用中提供的字段从列表中过滤对象:

http://localhost:8080/myuri?state=NY

现在,我需要开发自定义过滤器,但我发现property filter并不是我想要的东西。有没有办法做到这一点。

1 个答案:

答案 0 :(得分:3)

您无需使用Jackson来执行此操作。只需使用Stream API对其进行过滤。如果数据是从DB加载的,请使用SQL的{​​{1}}子句对其进行过滤。

示例:

WHERE

如果您有缓存列表,则可以按以下方式对其进行过滤:

@GetMapping(value = "/states", produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public List<MyObject> loadStates(@RequestParam(name = "state", defaultValue = "NY", required = false) String[] states) {
    return service.loadAndFilterByState(states);
}

另请参阅:

相关问题