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

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

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

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

最好使用@Transient注释,这将使你的意图变得更加明显。

看看这个:

 private transient Somefield myField; 

和这个:

 @Transient private Somefield myField; 

哪个更明显?

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

更不用说,它肯定是可能的(检查你的实现),如果一个字段被标记为transient ,但没有注释,当你的对象越过网络时,你的实现将期望一个具有null值的字段,但它会一无所获,这可能会导致一些问题。