如何将Web服务响应输入流转换为java对象?

时间:2011-01-21 19:11:07

标签: java web-services json cxf jax-rs

在我的网络服务上执行http请求后,我得到一个javax.ws.rs.core.Response对象。当我在getEntity对象上调用Response方法时,我得到一个输入流,它是JSON的字符串表示。有谁知道我怎么能/应该把这个字符串转换成java对象?既然,我使用CXF可以使用JAXBContext吗?或者我必须创建自定义邮件正文阅读器吗?感谢。

3 个答案:

答案 0 :(得分:1)

Jackson内置了JAX-RS支持 请参阅org.codehaus.jackson.jaxrs.JacksonJsonProvider 和org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider

答案 1 :(得分:0)

有一些库可以将json字符串解析为java对象:

link非常有用!

答案 2 :(得分:0)

这是一个示例。有一天会有帮助。 (这是使用示例XML输入)

    @POST
    @Path("/unmarshall")
    @Produces(MediaType.APPLICATION_XML)
    @Consumes(MediaType.APPLICATION_XML)
    public Response unmarshall(InputStream inputStream) throws JAXBException {
        JAXBContext jaxbContext = JAXBContext.newInstance(MyJaxbClass.class);
        Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
        Object unmarshal = unmarshaller.unmarshal(inputStream);
        return Response.ok().entity(unmarshal).build();
    }