![](/img/trans.png)
[英]Spring Rest Controller returns XML instead of JSON after Jasperreports update
[英]XML returns as default instead of JSON rest service
我有一個REST API,它支持如下返回XML和JSON:
@GET
@Path("/areas/city/{cityId}")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Response getAreaByCity(@PathParam("cityId") String cityId) {
List<Area> areaList = //service call to get area
GenericEntity<List<Area>> areaEntityList = new GenericEntity<List<Area>>(areaList) {};
return Response.ok(areaEntityList).build();
}
如果沒有定義Accept頭,上面的代碼將默認返回XML。我想返回JSON ..所以根據JAX-RS中@Produces注釋 ,我更改了服務以提供品質因數。 但是默認情況下再次返回XML。 經過一段時間的思考,我看到正在使用的Area
類標記有@XmlRootElement
。 這引起問題嗎? 如果是,該如何解決? 如果沒有,我如何返回JSON作為默認值。
你可以試試這個
@POST
@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Response post(Student s,@HeaderParam("Accept") String accept){
if(accept!=null && accept.contains(MediaType.APPLICATION_XML)){
accept = MediaType.APPLICATION_XML;
}else{
accept = MediaType.APPLICATION_JSON;
}
//Construct list
Response.ok(list, accept).build();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.