SpringBoot 解析 HttpClients 请求的 JSON 响应数据
使用 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
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
原文地址: https://www.cveoy.top/t/topic/nDQJ 著作权归作者所有。请勿转载和采集!