泽西休息:如何返回界面而不是类

时间:2015-06-15 11:55:38

标签: java json rest jersey

我有一个休息的网络服务。出于某种原因,我不想返回需要转换为界面的类。我想返回接口,在JSON中我只想看到方法(开始获取)的值。不是实现类的所有属性。

说一个例子:

@Path("getValues/")
@GET   
@Produces( MediaType.APPLICATION_JSON)
public DetailInterface getClientDetail() {
   return new DetailImpl(); 
}

并考虑界面:

public interface DetailInterface { 
    public String getName();
    public String getAge();
} 

并考虑实施

public class DetailImpl implements DetailInterface {
    public String getName() 
       return "my name";
    }

    public String getAge(){
       return "my age";
    }

    public String iDontWantThisinJSON() {
        return "I don't want this in JSON output";
    }
}

当我请求其他服务时,我看到iDontWantThisinJSON属性也出现在JSON响应中。我不想将其包含在回复中。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您是否尝试过@JsonIgnore注释?将字段标记为transient可能也有帮助 - 但我不确定它是否正常。

答案 1 :(得分:0)

这是一个比Rest或Json更多的java概念。您将必须按如下方式修改代码,它应该按照您希望的方式工作。

@Path("getValues/")
    @GET   
    @Produces( MediaType.APPLICATION_JSON)
    public DetailInterface getClientDetail() {
       DetailInterface di = new DetailImpl()
       return di; 
    }