简体   繁体   English

java杰克逊:从url rest网络服务获取作为json的pojo(带有内部pojo),并将其映射回pojo

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

I'm using jackson, the scenario is: 我正在使用杰克逊,情况是:

  1. In client (Android) generate url call to web service 在客户端(Android)中生成对Web服务的url调用
  2. The web service return "complex pojo" (has class members as other pojo) as json Web服务将“ complex pojo”(具有类成员作为其他pojo)返回为json
  3. Back in client map the json to pojo 返回客户端将json映射到pojo

I don't know how to complete this code to get things work although I searched all over and figured out the following start point, but then I completely stacked and I need help... 尽管我四处搜寻并找出以下起点,但我不知道如何完成此代码以使事情正常进行,但是后来我完全堆砌了,需要帮助...

  1. The "complex pojo": “复杂的pojo”:

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

     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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM