目前我打印我的播客API的輸出是這樣的:Jersey:如何打印嵌套對象爲JSON的通用對象?
{
"data":[{"feed":"someUrl","id":1,"name":"someName"}],
"success":true
}
我有一個與「數據」和「成功」生成對象的響應對象,我有播客對象與PodcastResponse對象「feed」,「id」,「name」。
@XmlRootElement()
@XmlSeeAlso(PodcastResponse.class)
public class Response {
@XmlElement
boolean success = true;
@XmlElement
List<PodcastResponse> data;
//Getters, Setters, etc.
}
@XmlRootElement()
public class PodcastResponse {
@XmlElement
int id;
@XmlElement
String name;
@XmlElement
String feed_url;
//Getters, Setters, etc.
}
這將生成輸出:
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getPodcasts() {
return new Response(true, PodcastManager.getPodcasts());
}
這確實工作。現在我想要生成Response類,以便可以使用PodcastResponse類。
@XmlRootElement()
public class Response<T> {
@XmlElement
boolean success = true;
@XmlElement
List<T> data;
//Getters, Setters, etc.
}
按預期不工作,輸出:
{
"data": ["[email protected]"],
"success":true
}
我如何寫一個通用的響應類,這樣我可以顯示數據中有一個varitey JSON格式?
您將需要使用[JAXB批註(https://jersey.java.net/documentation/1.19.1/xml.html)爲PodcastResponse這樣當對象被序列化的串行知道如何爲每個字段生成JSON。 – randominstanceOfLivingThing