我有一个特定的用例,我正在尝试使用自定义序列化(GSON)和自定义Java注释来解决。
我正在从源中读取json数据,将其转换并将其写入接收器。我的Json具有以下结构:(转换后的Json具有相同的结构,但要转换的标识符具有不同的值)
{
"someId": "abc",
"otherId": "efgh",
"metadata": {"id": "xyz", "count": 5},
"cardId": "qwe123"
"version": 1.0
}
这将转换为以下模型:
public class Customers {
@Transform private String someId; // transform this identifier
@Transform private String otherId; // transform this identifier
private CustomerMetadata metadata;
private String cardId; // Do not transform
private long version;
}
和
public class CustomerMetadata {
@Transform private String id; // transform this identifier
private int count;
}
我有一个用例,其中我想转换特定的标识符。这种转换由另一个服务执行,该服务接受标识符列表,对其进行转换,然后以相同顺序返回转换后的标识符(字符串类型)。
理想情况下,我只想为单个json文件调用一次此转换服务。我的想法是通过编写自定义序列化器或自定义反序列化器来实现。序列化程序将查找@Transform批注以捕获标识符列表,调用转换服务以接收已转换标识符的列表,最后用转换后的值替换相应的标识符。
此外,我需要以一般的方式实现这一目标,以便我的序列化器不依赖于特定的模型(POJO)。
任何想法如何处理?我愿意使用Jackson提供的类似功能(尽管我没有找到这种用例)