当前位置: 首页 > 知识库问答 >
问题:

javajackson:从url获取restweb服务,将pojo(带有内部pojo)调用为json,并将它们映射回pojo

白星海
2023-03-14

我在使用jackson,场景是:

  1. 在客户端(Android)生成url调用Web服务
  2. Web服务返回复杂pojo(有类成员作为其他pojo)作为json
  3. 回到客户端映射json到pojo

我不知道如何完成这段代码来让事情正常工作,虽然我到处搜索,并找到了以下的起点,但后来我完全堆叠起来,我需要帮助...

>

  • “复杂的pojo”:

    public class MyPojo {
        private List<MyOtherPojo> myOtherPojo;
        private List<HashMap<String, String>> listOfMaps;
        private Map<String, String> map;
        //Constructors, getters & setters
    }
    

    客户端的代码

    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) {}
    
  • 共有1个答案

    施轶
    2023-03-14

    得益于@peeskillet的解决方案

    MyPojo MyPojo=mapper。readValue(connection.getInputStream(),MyPojo。类)

     类似资料:
    • 我正在尝试使用Jackson将JSON映射到POJO。但是,由于此JSON包含对象的嵌套映射,当我将其反序列化到POJO时,timeseries信息不会转换为POJO。我只能在timeseries块中获取元数据部分和日期部分。timeseries块中的其他字段(如open、high和low)始终为空。 Jackson似乎无法将TimeSeries类中的字段与匹配。有人能告诉我该怎么做,或者给我指出

    • 我有一个JSON字符串: ...我试图映射回POJO: 上面的字符串(我正在尝试映射)实际上包含在一个组织中。json。JSONObject,可以通过调用该对象的方法来获取。 我想使用Jackson JSON对象/JSON映射框架来进行此映射,到目前为止,这是我最好的尝试: 我需要地图绘制者: 完全忽略外部的花括号(“”和“”) 如果唯一的方法是调用的方法,那么就这样吧。但我想知道Jackson是

    • 问题内容: 我有以下JSON表示盐请求的服务器响应: 我尝试使用以下POJO映射它: 现在每次我这样做: 该为空。如何使用Gson将JSON映射到POJO?我的变量顺序对Gson映射重要吗? 问题答案: 我的变量顺序对Gson映射重要吗? 不,不是这样。 如何使用Gson将JSON映射到POJO? 它是 区分大小写 和JSON字符串键应该是相同的POJO类使用的变量名。 您可以使用@Seriali

    • 我有以下JSON来表示salt请求的服务器响应: 我尝试用以下POJO映射它: 每次我这样做: 为空。如何使用GSON将JSON映射到POJO?变量的顺序对Gson映射重要吗?

    • 我使用JAVA jackson将JSON映射到JAVA pojo对象,我的JSON文件是: 在之后,我收到了以下错误消息: 不能反序列化出START_ARRAY令牌 我的POJO课程: 请问,这种JSON格式的正确java POJO是什么?谢谢

    • 我一直在研究Jackson,但似乎必须将映射转换为JSON,然后将生成的JSON转换为POJO。 有没有一种方法可以将地图直接转换成POJO?