java - 使用 RESTlet,XStream 注释似乎没有效果

标签 java restlet xstream

在我的 POJO 中使用 @XStreamOmitField 似乎没有任何效果。带注释的字段仍然在 xml 或 json 表示中公开。

@XStreamAlias("Pojo")
@Entity
public class Pojo {
    private String name;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long key;

    @XStreamOmitField
    private String hidden;

    public Pojo(String name, String hidden) {
        this.name = name;
        this.hidden = hidden;
    }
}

在服务器资源中

@Get
public Pojo test() {
    Pojo pj= new Pojo("hansi","hinter");
    return pj;
}

让我明白

<com.myComp.ORMTest.Pojo>
  <name>hansi</name>
  <hidden>hinter</hidden>
</com.myComp.ORMTest.Pojo>

为什么注释被忽略有什么想法吗?

最佳答案

您必须告诉 XStream 显式处理注释:

XStream xstream = new XStream();
xstream.processAnnotations(MyClass.class);

或者,您应该添加此代码来告诉 XStream 处理所有注释:

xstream.autodetectAnnotations(true);

关于java - 使用 RESTlet,XStream 注释似乎没有效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2300566/

相关文章:

使用svnclientadapter提交文件的java程序

json - 使用 JSON 的 ReSTLet POST

java - 创建 Web 服务的最佳实践

java - XSTREAM - 类转换异常

java - 使用 Xstream,需要说明

java - 我们如何使用 XStream 或任何其他解析器获取以下格式的 json?

java.sql.SQLException : The identifier that starts with 'xxxx' is too long. 最大长度为 30

java - Zend/PHP : how to perform HTTP POST to controller and mapper php classes

java - 证书中存在关键策略限定符

java - 是否有可用的 GAE 上的 ReSTLet 开源项目?