JAX RS是否有org.json.JSONObject的任何替代方法

时间:2015-04-30 04:22:25

标签: json api jax-rs resteasy

我正在尝试使用JAX-RS(RestEasy)编写MessageBodyReader。然后想要将映射器转换为JSONObject,此时我正在使用org.json.JSONObject来实现此目的。

JAX-RS本身对JSONObject有任何替代方法吗?

1 个答案:

答案 0 :(得分:1)

JAX-RS没有定义任何特定的JSON [de]序列化库。

但是,在实施MessageBodyReader的库中,您应该找到一些使用jackson的库。您可以使用jackson的ObjectMapper作为MessageBodyReader的json反序列化器。

一个天真的实现看起来像:

MessageBodyReader mr = new MessageBodyReader() {

    ObjectMapper mapper = new ObjectMapper();

    @Override
    public Object readFrom(
            Class type, Type genericType,
            Annotation[] annotations, MediaType mediaType, MultivaluedMap httpHeaders,
            InputStream entityStream) throws IOException, WebApplicationException
    {
        return mapper.readValue(entityStream, type);
    }

    @Override
    public boolean isReadable(Class type, Type genericType, Annotation[] annotations, MediaType mediaType) {
        return true;
    }
};