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

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

我有这个POJO,正在使用新的Gson()。toJson(entity)将其序列化为JSON我应该在此POJO上实现Serializable接口吗?

@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个回答
2
投票

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

  1. 保存在磁盘上
  2. 通过套接字作为对象发送
  3. 例如,如果您在集群中的两个或多个节点上的HA中部署了Web应用程序(然后它们彼此交换会话),并且您使用会话范围保存用户身份验证,则包含此信息的bean必须是可序列化。

如果您决定使用Serializable,请添加serialVersionUID。 JVM长期以来一直使用它以独特的方式标识对象本身。

[不区分时,编译器添加一个生成的(因此依赖于编译器),并且当您更改对象(例如添加字段)时,此标识也会更改。这意味着在进行最小的更改后,您不应在更改之前反序列化序列化的对象。

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