如何解组resttemplate返回的ResponseEntity对象?

9gm1akwq  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(523)

我有两个第三方api的,我击中和得到的回应是 ResponseEntity<Object> 使用resttemplate。我想将响应解组为对象,以便可以访问其中的内容。

ResponseEntity<Object> response = restTemplate.exchange(apiEndPointToHit,HttpMethod.GET,null,Object.class);

第一次api响应

{
        "responseStatus": "SUCCESS",
        "size": 88,
        "start": 0,
        "limit": 200,
        "sort": "id asc",
        "users": [
            {
                "user": {
                    "user_name": "XYZ",
                    "user_first_name": "XYZ",
                    "user_last_name: "XYZ",
                    "user_email": "XYZ",
                  }
            },

           {
                "user":{
                   "user_name":"ABC",
                   "user_first_name":"ABC",
                   "user_last_name":"ABC",
                 },
             },

             {
               "user":{
                   "user_name":"PQR",
                   "user_first_name":"PQR",
                   "user_last_name":"PQR",
                }
             },

           }
         ]
    }

在此响应中,用户将包含多个用户。我要获取所有用户的列表。这样我就可以访问列表字段中每个用户对象的内容,如user\u name、user\u first\u name等。
第二个api响应为

{
  "message": {
    "documents": {
   }
 }
}

在这种情况下,一条消息将包含一个文档。我想访问文档。json响应包含多个字段。因此不可能创建pojo类。有没有办法通过创建pojo类来访问响应实体中的对象?

eoigrqb6

eoigrqb61#

我们可以使用对象Map器或jsonobject来帮助反序列化json主体。我建议使用jsonobject并遵循下面的示例来解包jsonbody。
1.添加依赖项

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20180130</version>
</dependency>

初始化从resttemplate传递JSonResponse的jsonobject。

JSONObject jo = new JSONObject(jsonResponse);

尝试访问jsonresponse中的对象

getJsonObject/getJsonArray

JSONArray ja = jo.getJsonArray("users");

相关问题