java - Jaxb:处理剩余 Web 服务响应中的可选元素

标签 java xml web-services rest jaxb

我有一个对象票证,它有一个与其关联的元素totalNoOfTickets。我在 Restful 服务的许多方法中使用了这个对象 Ticket。但是,我只需要元素“totalNoOfTickets”仅用于一种方法,而不需要其他方法......

例如,在我的一种方法中,我说...

Ticket.setTotalNoOfTickets(7);

我没有在其他方法中使用这个totalNoOfTickets。因此,我没有在其他方法中设置它。

现在在我的 Ticket.java 中......我有

public class Ticket
    extends ActionType {

    @XmlElementWrapper(name = "Tickets")
    @XmlElement(name = "Ticket")
    protected List<Ticket> tickets;

    @XmlElement(name = "TotalNumOfTickets")
    protected int totalNumofTickets;

    public int getTotalNumofTickets() {
        return totalNumofTickets;
    }

    public void setTotalNumofTickets(int totalNumoftokens) {
        this.totalNumofTickets = totalNumoftickets;
    }

在方法响应中,我设置了totalNumoftickets,响应包含:

<TotalNumOfTickets>7</TotalNumOfTickets>

但是,即使在响应中,我不需要totalNumoftickets,响应也包含

<TotalNumOfTickets>0</TotalNumOfTickets>

在 Jax-B 中是否有任何方法不会有

<TotalNumOfTickets>0</TotalNumOfTickets>

在方法的响应中,我没有设置totalNumoftickets?...我可以选择使用该元素

最佳答案

默认情况下 JAXB (JSR-222)实现不会编码(marshal) null 值。您可以将 totalNumofTickets 字段/属性更改为 Integer 并在您不想编码(marshal)它时将其值设置为 null。

public class Ticket
    extends ActionType {

    @XmlElementWrapper(name = "Tickets")
    @XmlElement(name = "Ticket")
    protected List<Ticket> tickets;

    @XmlElement(name = "TotalNumOfTickets")
    protected Integer totalNumofTickets;

    public Integer getTotalNumofTickets() {
        return totalNumofTickets;
    }

    public void setTotalNumofTickets(Integer totalNumoftokens) {
        this.totalNumofTickets = totalNumoftickets;
    }

}

了解更多信息

关于java - Jaxb:处理剩余 Web 服务响应中的可选元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12590570/

相关文章:

java - Java 中的接口(interface) : cannot make implemented methods protected or private

java - 如何找到面板的真实高度?

java - 不支持的媒体异常 : Unsupported Content-Type: text/html Supported ones are: [text/xml]

java - JAXB 忽略响应 XML 中的 'extra' 元素

java - 如何使用 Java JAX-RPC 添加 SOAP header ?

java - Selenium 和 PhantomJS - 等待驱动程序服务器启动超时

xml - 使用 xmlpath.v2 golang 获取节点的值

javax.ws.rs.ProcessingException : could not find writer for content-type application/x-www-form-urlencoded type

c# - 无法添加网络引用

java - 在android中读取嵌套的json字符串