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

时间:2013-06-29 06:47:37

标签: java json annotations transient

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

我看到java transient关键字也适用于此。我想知道哪些在性能方面和安全性方面最好,效率更高。

2 个答案:

答案 0 :(得分:2)

最好使用@Transient注释,这样可以更明显地表达您的意图。

看看这个:

private transient Somefield myField;

和此:

@Transient
private Somefield myField;

哪一个更明显?

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

更不用说,当然有可能(检查你的实现)如果一个字段被标记为transient但没有注释,当你的对象通过网络时,你的实现将期望一个字段null值,但它不会得到任何东西,这可能会导致一些问题。

答案 1 :(得分:1)

我更喜欢使用基于注释的映射。因为这可能依赖于您的JSON解析器API。因此,java annotation Vs @Transient之间可能存在差异。