如何在JSON响应中隐藏信息?

cor*_*iKa 1 java json jackson javax.xml

假设我有一个Player类:(忽略访问修饰符)

@javax.xml.bind.annotation.XmlRootElement
class Player {
    Long id;
    String name;
    String secret;
}
Run Code Online (Sandbox Code Playgroud)

我也可能在王国周围有城堡

@javax.xml.bind.annotation.XmlRootElement
class Kingdom {
    Long id;
    String name;
    Player owner;
}
Run Code Online (Sandbox Code Playgroud)

现在,当我将王国对象吐到json供UI消费时,玩家对象也随之消失.这很好,如果你不知道它是友好还是敌人,它就不会有用.但最糟糕的是秘密变量也被释放了.是否可以注释我的秘密变量以防止它被封送?

Sot*_*lis 5

你可以注释你的领域或吸气

@JsonIgnore
Run Code Online (Sandbox Code Playgroud)

javadoc说

标记注释,指示基于内省的序列化和反序列化功能将忽略带注释的方法或字段.也就是说,它不应该被认为是"吸气者","设定者"或"创造者".