gpt4 book ai didi

json - Spring Rest api 过滤响应中的字段

转载 作者:行者123 更新时间:2023-12-02 06:02:44 26 4
gpt4 key购买 nike

我正在使用 Spring Rest api 4.x。我们有一个需求,根据请求参数过滤响应中的字段。

我的用户对象:

private class UserResource {
private String userLastName;
private String userFirstName;
private String email;
private String streetAddress;
}

E.g. URL: curl -i http://hostname:port/api/v1/users?fields=firstName,lastName.

在这种情况下,我只需要返回请求参数“fields”中的字段。 JSON 输出应仅包含名字、姓氏。

有多种方法可以根据对象过滤 Jackson 中的字段。就我而言,我需要通过将字段列表传递给 Jackson 序列化器来动态过滤。

请分享一些想法。

最佳答案

谢谢阿里。这是一个很大的帮助。今天就让我来实现吧。我将发布结果

@JsonFilter("blah.my.UserEntity")
public class UserEntity implements Serializable {
//fields goes here
}

@RequestMapping(value = "/users", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public MappingJacksonValue getUsers(@RequestParam MultiValueMap<String, String> params) {
//Build pageable here
Page<UserEntity> users = userService.findAll(pageable);

MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(users);
FilterProvider filters = new SimpleFilterProvider()
.addFilter("blah.my.UserEntity", SimpleBeanPropertyFilter
.filterOutAllExcept("userFirstName"));
mappingJacksonValue.setFilters(filters);
return mappingJacksonValue;
}

关于json - Spring Rest api 过滤响应中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35158064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com