我有RESTful Web服务。例如,我有一个方法,可以使用具有不同内容类型的对象:
@Consumes({"application/vnd.RequestObjV1+json", "application/vnd.RequestObjV2+json"})
ResponseObj method(RequestObj requestObj);
ResponseObj包含即时字段InstantField。对于内容类型为application / vnd.RequestObjV1 + json的请求,我需要在几秒钟内序列化InstantField,而对于内容类型为application / vnd.RequestObjV2 + json的序列化,我需要以毫秒为单位。
有没有一种方法可以通过对字段的注释来做到这一点?像这样:
public class ResponseObj {
.....
@JsonSerialize(using = InstantSerializerForV1Type.class, InstantSerializerForV2Type.class)
private Instant instantField;
.....
}
还是我需要做其他事情?
我也试图在InstantSerializer类中获取内容类型,但是找不到如何做。
不希望仅出于一个字段而创建单独的服务器方法和类。
有什么方法可以让序列化程序根据请求中内容的类型来对Instant进行序列化?
答案 0 :(得分:0)
您可以创建自定义序列化程序。并通过
访问http标头@Autowire
HttpServletRequest request;
它是会话bean。