java - 从java transient 或@Transient注释隐藏JSON序列化属性的最佳方法?

标签 java json annotations transient

在 Spring 中,ExtJs 应用程序我使用 java 对象的 JSON 序列化。当我想从 JSON 中排除某个属性时,我使用 @Transient注释。

我看到java transient关键字也适用于此。我想知道其中哪一个在性能角度和安全性方面最好且更有效。

最佳答案

最好使用@Transient注释,这会让你的意图更加明显。

看看这个:

private transient Somefield myField;

还有这个:

@Transient
private Somefield myField;

哪一个更明显?

transient 作为关键字“仅”用于在 Java 序列化期间忽略某些字段。您可以说注释更特定于领域,并且您的 JSON 处理器使用它会更好;安全性和性能方面,因为它会知道您想要做什么。

更不用说,如果一个字段被标记为 transient ,但没有注释,那么当您的对象通过网络传输时,您的实现将期望一个字段具有 null 值,但它不会得到任何结果,这可能会导致一些问题。

关于java - 从java transient 或@Transient注释隐藏JSON序列化属性的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17377549/

相关文章:

java - 如何在 HttpPost 中使用参数

java - 为什么Spring强制我使用静态变量?

java - ZonedDateTime 和 OffsetDateTime 有什么区别?

java - JPA 将 Java Double 映射到 SQL Number 列

javascript - 从 Web 服务返回单个 json 对象的数组

asp.net-mvc - Controller 总是从 json 仅接收指定字段的 null

java - 类级别注释与接口(interface)

java - 使用 Java 中的注释制作自定义表单

java - 我的代码将目录检测为文件并将文件检测为目录

java - 在尝试使用资源时,PrintWriter 对象变量无法解析为类型