代码之家  ›  专栏  ›  技术社区  ›  Héctor

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

  •  0
  • Héctor  · 技术社区  · 6 年前

    我有这门课:

    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 回复  |  直到 6 年前
        1
  •  1
  •   Baldy    6 年前

    如果你标注 toString() 方法与 @JsonValue 杰克逊将使用它进行序列化。还可以使用 @JsonCreator 用于反序列化。