java jackson:从 url rest web 服务调用 pojo(带有内部 pojo)作为 json 并将它们映射回 pojo

java jackson: get from url rest web service call pojo's (with inner pojo's) as json and map them back to pojo

我用的是jackson,场景是:

  1. 在客户端 (Android) 中生成 url 对 Web 服务的调用
  2. Web 服务 return "complex pojo"(与其他 pojo 一样有 class 个成员)作为 json
  3. 返回客户端将 json 映射到 pojo

我不知道如何完成此代码以使事情正常进行,尽管我进行了全面搜索并找出了以下起点,但后来我完全堆积起来,我需要帮助...

  1. "complex pojo":

    public class MyPojo {
        private List<MyOtherPojo> myOtherPojo;
        private List<HashMap<String, String>> listOfMaps;
        private Map<String, String> map;
        //Constructors, getters & setters
    }
    
  2. 客户端代码:

    String wsURI = "server.com/myservice?param1=a&param2=b";
    try {
        URL url = new URL(wsURI);
        URLConnection connection = url.openConnection();
        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        StringBuilder sbuilder = new StringBuilder();
        String aux = "";
        while ( (aux = in.readLine()) != null) {
            sbuilder.append(aux);
        }
        ObjectMapper mapper = new ObjectMapper();
        //TODO get myPojo object from his representation as string at sbuilder.toString(); 
        myPojo = ???;
    } catch (Exception e) {}
    

感谢@peeskillet 的解决方案:

MyPojo myPojo = mapper.readValue(connection.getInputStream(), MyPojo.class);