Java 在Spring和Jersey中是否可以同时返回xml或json?
只是和spring和jersey做一点比较 好奇一个方法是否可以同时返回xml或json 可能默认为xml,但有一个可选标志将返回jsonJava 在Spring和Jersey中是否可以同时返回xml或json?,java,spring,jersey,Java,Spring,Jersey,只是和spring和jersey做一点比较 好奇一个方法是否可以同时返回xml或json 可能默认为xml,但有一个可选标志将返回json 可能吗?您提到了Jersey,所以我假设您指的是REST实现。如果资源设置正确,Jersey将自动将您的内容序列化为XML和JSON。您只需为您的@制作批注指明更广泛的媒体类型: @GET @Path("/somepath") @Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_XML}) public
可能吗?您提到了Jersey,所以我假设您指的是REST实现。如果资源设置正确,Jersey将自动将您的内容序列化为XML和JSON。您只需为您的
@制作批注指明更广泛的媒体类型:
@GET
@Path("/somepath")
@Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})
public MyBean getData() ;
其中,MyBean
是一个适当的JAXB注释POJO。使用此资源端点定义,调用者可以通过Accept:
标题指定所需的内容类型:
GET http://www.example.com/somepath
Accept: text/xml
您提到了Jersey,所以我假设您指的是REST实现。如果资源设置正确,Jersey将自动将您的内容序列化为XML和JSON。您只需为您的@制作批注指明更广泛的媒体类型:
@GET
@Path("/somepath")
@Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})
public MyBean getData() ;
其中,MyBean
是一个适当的JAXB注释POJO。使用此资源端点定义,调用者可以通过Accept:
标题指定所需的内容类型:
GET http://www.example.com/somepath
Accept: text/xml
Spring提供了ContentNegotiatingViewResolver,旨在提供此功能。文档中的示例:
描述了HTML和JSON之间的切换,但可以使用JAXB或其他一些XML序列化程序轻松地对其进行扩展以支持XML。进一步阅读:
我将发布一个使用XML和Jersey的示例,但我不熟悉Jersey的bean。Spring提供了一个ContentNegotiatingViewResolver,旨在提供此功能。文档中的示例:
描述了HTML和JSON之间的切换,但可以使用JAXB或其他一些XML序列化程序轻松地对其进行扩展以支持XML。进一步阅读:
我会发布一个使用XML和Jersey的示例,但我不熟悉Jersey的bean。如果get请求没有指定,它会默认为json之类的第一个类型吗?@user1361315我的经验是它会选择第一个类型,但我从未找到任何文档来确认该行为。如果您有两个方法,每个方法具有不同的products,它将选择Java 7之前的第一个方法,以及Java 7中的随机方法。@我假设它是json和html的有效组合,就像json和XML一样。正确吗?@manocha_ak作为端点支持的媒体类型声明,没有实际限制。您可以指定受支持甚至不受支持的类型的任意组合。如果get请求没有指定,它会默认为json之类的第一种类型吗?@user1361315我的经验是它会选择第一种类型,但我从未找到任何文档来确认该行为。如果您有两个方法,每个方法具有不同的products,它将选择Java 7之前的第一个方法,以及Java 7中的随机方法。@我假设它是json和html的有效组合,就像json和XML一样。正确吗?@manocha_ak作为端点支持的媒体类型声明,没有实际限制。您可以指定支持的甚至不支持的类型的任意组合。