在REST客户端上工作,该REST客户端调用另一个返回以下对象的服务器:
public class ObjectOriginal {
private int id;
private String name;
// constructor/getters/setters
}
我需要混淆ID。为此,我正在使用一个已经存在的服务,该服务将id转换为唯一的生成的String,以便调用我的服务的人不知道REAL ID,但仍可以使用唯一的字符串请求有关它的信息。
所以我基本上是想将这个对象返回给调用者:
public class ObjectNew {
private String id;
private String name;
// constructor/getters/setters
}
我是否需要拥有ObjectOriginalDTO的副本+创建一个ObjectNew DTO +创建一个映射器才能从一个映射到另一个映射。 还是可以将Jackson配置为将id字段反序列化为String而不是int?
答案 0 :(得分:0)
您可以使用自己的序列化器/解串器来执行此操作。
您必须实现自己的序列化器/反序列化器,该序列化器将分别BeanSerializerModifier/BeanDeserializerModifier
进行扩展,并使用它们来配置模块,或者使用tutorial中所述的基于注释的基础解决方案,网络上有很多参考资料这样的事情。那么您将可以更灵活地控制id
的映射方式。
答案 1 :(得分:0)
如果您不想使用自定义解串器,则可以:
public class ObjectNewDto {
private String id;
private String name;
// constructor/getters/setters
}
和另一个对象:
public class ObjectOriginal {
private int id;
private String name;
// construxtor/getters/settes
}
现在,在验证ObjectNewDto之后,您可以通过混淆器服务将其映射到ObjectOriginal,然后验证该Object Original,依此类推...