Java-用于切换字段类型的通用序列化器和反序列化器

时间:2019-03-26 17:38:01

标签: java serialization

我的应用程序的工作有点像中间人,我必须从一个端点到另一个端点以及从另一个端点获取请求的数据。

但是,每个DTO都具有“敏感”信息(ID),因此从A-> B进入时,我必须对Integer字段进行转码并返回编码数据的String值。当从B-> A转到时,我必须将String数据解码回其原始Integer标识符值。全部使用JSON。

例如对于PersonDTO,如果A发送:

{
   "id":85,
   "name":"John"
}

B会得到:

{
   "id":"xDf8rt",
   "name":"John"
}

如何设置自定义序列化程序以在序列化和反序列化时将字段从int转换为String并将String转换为int?

我可以很容易地做到A-> B:

public class PersonDTO {
   @JsonProperty(access = Access.WRITE_ONLY)
   private int id;
   @JsonProperty(access = Access.READ_ONLY, value = "id")
   private String idRef;

   // public getter/stter
}

但是反过来又没有创建新的DTO(因为我必须对100多个DTO执行此操作,并且不能碰到从A发送来的DTO)...考虑过要制作通用的序列化器/解串器,但是不知道在哪里开始或处理具有不同id字段名称的不同DTO。

0 个答案:

没有答案