将LinkedHasmap转换为POJO?

时间:2015-11-23 09:16:52

标签: java jaxb resteasy pojo

我有一个名为Container的POJO,我想将其发送到RESTful Web服务。

客户端

    try {

       JAXBContext ctx = JAXBContextFactory.createContext(new Class[] {Container.class}, null);             
       jsonContent = objectToJSON(ctx, cont);
       HttpEntity entity = new ByteArrayEntity(jsonContent.getBytes("UTF-8"));
       ((HttpPost) httpUriRequest).setEntity(entity);

    } catch (JAXBException e) {
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

     public String objectToJSON(JAXBContext ctx, Object object)
            {
                try
                {
                    Marshaller marshaller = ctx.createMarshaller();

                    marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
                    marshaller.setProperty(MarshallerProperties.MEDIA_TYPE, "application/json");
                    marshaller.setProperty(MarshallerProperties.JSON_INCLUDE_ROOT, false);

                    StringWriter sw = new StringWriter();
                    marshaller.marshal(object, sw);

                    return sw.toString();
                }
                catch (JAXBException e){

                    System.out.println("--------JAXB EXCEPTION------------\n" );
                    e.printStackTrace();
                    LOGGER.error("JAXB marshalling error!", e);
                }
                return "HELLO";
            }

我正在使用REST-easy。

服务器端

@POST

    @Consumes({"application/json"})
    @Produces({"application/json"})
    public String handlePostRequest(Object resource) {

       System.out.println("\nINSIDE HANDLE POST: CONTENT CLASS" + resource.getClass());
       System.out.println("\nINSIDE HANDLE POST: " + resource);
        return "SIDD";
    }

在这里,我收到以Object类型发送的内容:  public String handlePostRequest(Object resource) {

因此SOP将类打印为LinkedHashMap,并且我的POJO(Container)的属性在HashMap中设置为键值对。

这里我想使用Object类型,因为从客户端发送的POJO可能会因请求而异。所以我想写一个通用函数。

现在,有没有一种标准方法可以将LinkedHashMap(作为对象)转换为java中的POJO?

0 个答案:

没有答案