是否可以在没有自定义序列化程序的情况下使用toString方法将对象序列化为JSON?

时间:2018-11-15 11:49:35

标签: java json jackson

我上了这个课:

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 来实现

1 个答案:

答案 0 :(得分:1)

如果您用toString()注释@JsonValue方法,Jackson将使用该方法进行序列化。您还可以使用@JsonCreator注释String构造函数以进行反序列化。