我上了这个课:
public class JsonUser {
private final String id;
private final String email;
public JsonUser(String id, String email) {
this.id = id;
this.email = email;
}
@Override
public String toString() {
JsonObject json = new JsonObject();
json.addProperty("id", user.id());
json.addProperty("email", user.email());
return json.toString();
}
}
如您所见,JsonUser::toString
返回一个JSON字符串。我想知道是否有任何方法可以告诉杰克逊通过调用JsonUser
方法而不是字段/属性来序列化toString
。
是否可以不通过自定义序列化程序使用@JsonSerialize
来实现?
答案 0 :(得分:1)
如果您用toString()
注释@JsonValue
方法,Jackson将使用该方法进行序列化。您还可以使用@JsonCreator
注释String构造函数以进行反序列化。