我有一个EntityId
作为数据库标识符的简单包装类服务器的类。该类已经具有转换为字符串表示和从字符串表示转换的方法。我想EntityId
在我的 JSON Web 资源中使用这个字符串表示。
在 Jackson 中为这种简单类型实现自定义序列化最简单的是什么?我知道我可以编写自定义序列化器和反序列化器,但我想知道是否有更简单的解决方案。
谢谢!
如果有将类型序列化为 String 的方法,则可以@JsonValue
像这样添加注释:
public class MyClass {
@JsonValue public String toString() { return "xxx"; }
}
相反,如果有一个单参数构造函数采用String
, int
or long
(或杰克逊可以从 JSON 标量类型转换为的某种 Java 类型),您可以@JsonCreator
在该构造函数旁边添加注释:
public class MyClass {
@JsonCreator
public MyClass(OtherPojo value) { // or use 'Map<String,Object>', extract data
// ...
}
}