小编Dan*_*iil的帖子

Jackson自定义序列化和反序列化

我无法找出使用杰克逊实现自定义序列化/反序列化的正确方法。我有许多带有原始字段的类(~50),这些字段应该被序列化/反序列化,而不是作为原始字段。喜欢:

class User {
    int height // this field should be serialized as "height": "10 m"
}

class Food {
    int temperature // this field should be serialized as "temperature": "50 C"
}

class House {
    int width // this field should be serialized as "width": "10 m"
}
Run Code Online (Sandbox Code Playgroud)

所有序列化和反序列化都非常相似,我只需要在整数后面添加一个后缀(C、页、米等..)

执行此操作的一种简单方法是将一对@JsonSerialize/@JsonDeserialize注释添加到每个此类字段并实现它们。但我最终会得到 100 个非常相似的序列化器/反序列化器。

我考虑过向每个字段(例如@Units("Degree")@Units("Meters"))添加自定义注释到此类整数字段,并实现 ,SerializationProvider它将基于注释值以通用方式创建序列化器。但我没有找到提供有关属性注释信息的地方。

java json jackson

2
推荐指数
1
解决办法
2329
查看次数

标签 统计

jackson ×1

java ×1

json ×1