簡體   English   中英

XML返回默認值,而不是JSON rest服務

[英]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.

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