Jackson/Spring中响应体的java自定义处理程序
我试图截取在我的控制器中返回的对象,以便在Spring调用Jackson的序列化过程之前创建响应的平面JSON结构
我将支持一个查询参数,它允许客户机将响应体展平。比如:
/v1/rest/employees/{employeId}/id?flat=true
控制器方法类似于:
public Employee getEmployee(...) {}
我希望避免在每次服务调用中实现这种扁平化逻辑,并继续返回Employee
对象
Spring中是否有某种工具允许我A)读取查询字符串,B)截取作为响应体返回的对象
# 1 楼答案
这里有一个想法。也许有更好的方法,但这会奏效:
定义一个额外的请求映射来执行平面映射:
“flatMapper”实现可以是任何你喜欢的东西,只要它能工作。 一种选择是先使用Jackson的ObjectMapper将值写为json,然后使用https://github.com/wnameless/json-flattener将其展平到所需的输出。还有一种方法可以定义一个定制的ObjectMapper来进行平面映射,不过这需要您做更多的工作