使用 GSON 序列化为 JSON 的类是否应该实现可序列化接口

问题描述 投票:0回答:1

我有这个 POJO,它正在使用 new Gson().toJson(entity) 序列化为 JSON 我应该在这个 POJO 上实现可序列化接口吗?

@Data
public class BankcodeJSONEntity {

    @NotNull
    @Size(min = 8, max = 8)
    private String bankcode;
    @NotNull
    @Size(min = 11, max = 11)
    private String bic;
    @NotNull
    private String ticket;

    @Basic
    @Temporal(TemporalType.DATE)
    @NotNull
    private Date date;
    @NotNull
    private String category;
    @NotNull
    private String name;

}
java json gson serializable
1个回答
3
投票

不,没有必要。 Gson 使用反射来生成所需的 json。您应该在以下情况下实施

Serializable

  1. 将其保存在磁盘上
  2. 通过套接字将其作为对象发送

例如,如果您在集群中两个或多个节点上的 HA 中部署了一个 Web 应用程序(然后它们彼此交换会话),并且您使用会话范围来保存用户身份验证,则包含此信息的 bean 必须是可序列化的.

如果您决定使用

Serializable
,请添加
serialVersionUID
。 JVM 长期使用它来以独特的方式识别对象本身。

当您不指定它时,编译器会添加一个生成的对象(因此取决于编译器),并且当您更改对象时,该标识会发生变化,例如添加一个字段;这意味着在进行最小的更改后,您不应该反序列化更改之前序列化的对象。

© www.soinside.com 2019 - 2024. All rights reserved.