簡體   English   中英

Spring + JAXB-以相同元素根解組XML

[英]Spring + JAXB - Unmarshal XML with the same element root

我正在使用RestTemplate調用2個不同的Rest API,這些API返回以下XML:

<response><user>...</user></response>
<response><client>...</client></response>

在我的應用程序中,我有2個類:

@XmlRootElement(name = "response")
class UserResponse {...}

@XmlRootElement(name = "response")
class ClientResponse {...}

我無法控制這些API,也無法修改響應XML。

如何使用2個不同的響應和相同的根元素?

謝謝。

相反,您可以有一個Response類,其中包含一個User和一個Client類,它們是包含在響應根元素中的元素。 像這樣:

@XmlRootElement(name = "response")
@XmlAccessorType(XmlAccessType.FIELD)
class Response {
    @XmlElement(required = false)
    private User user;
    @XmlElement(required = false)
    private Client client;
}

class User {
}

class Client {
}

如果知道期望的響應類型,則可以不使用@XmlRootElement批注,而使用采用Class參數的解組方法之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM