使用 HttpClients 请求的响应结果为{ 'code': 0, 'msg': '', 'data': { 'next_id': 8, 'data': [ { 'user_id': '6503776102009874', 'ext_id': '8493138959115314', 'terminal_id': 'DL-D7_0000001', 'check_type': 'fp', 'id': 5, 'check_time': 1682326783, 'check_data': '{"device_name":"人脸考勤机D7","employee_num":"","dept_name":"","cmd":"checkin","member_name":"沈平","dept_id":""}' }, { 'user_id': '4946919958189376', 'ext_id': '7551770870492020', 'terminal_id': 'DL-D7_0000001', 'check_type': 'fa', 'id': 6, 'check_time': 1682327841, 'check_data': '{"device_name":"人脸考勤机D7","employee_num":"","dept_name":"","cmd":"checkin","member_name":"戴敏","dept_id":""}' }, { 'user_id': '1765968750817174', 'ext_id': '5541253548724128', 'terminal_id': 'DL-D7_0000001', 'check_type': 'fp', 'id': 7, 'check_time': 1682327537, 'check_data': '{"device_name":"人脸考勤机D7","employee_num":"","dept_name":"","cmd":"checkin","member_name":"邱刚","dept_id":""}' } ] } } SpringBoot怎么解析结果,将里面的data收集成一个List内容:可以使用Jackson库来解析JSON字符串,将其转换为Java对象。具体实现如下:

首先,定义一个数据模型类CheckData:

public class CheckData {
    private String user_id;
    private String ext_id;
    private String terminal_id;
    private String check_type;
    private int id;
    private long check_time;
    private String check_data;

    // 省略getter和setter方法
}

然后,定义一个包含List的数据模型类ResponseData:

public class ResponseData {
    private int code;
    private String msg;
    private Data data;

    public static class Data {
        private int next_id;
        private List<CheckData> data;

        // 省略getter和setter方法
    }

    // 省略getter和setter方法
}

最后,在Controller中使用HttpClients发起请求,并将响应结果解析为ResponseData对象:

import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import com.fasterxml.jackson.databind.ObjectMapper;

@RestController
public class MyController {

    @GetMapping("/getData")
    public List<CheckData> getData() throws IOException {
        CloseableHttpClient client = HttpClients.createDefault();
        HttpGet httpGet = new HttpGet("http://example.com"); //示例url,需替换为实际url
        CloseableHttpResponse response = client.execute(httpGet);
        String responseBody = EntityUtils.toString(response.getEntity());
        ObjectMapper objectMapper = new ObjectMapper();
        ResponseData responseData = objectMapper.readValue(responseBody, ResponseData.class);
        List<CheckData> checkDataList = responseData.getData().getData();
        return checkDataList;
    }
}

以上代码会将响应结果中的data字段解析为一个List对象,并返回给前端。

SpringBoot 解析 HttpClients 请求的 JSON 响应数据

原文地址: https://www.cveoy.top/t/topic/nDQJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录