我正在尝试使用一个响应如下的API:-
{
"data": [
[
"2075/76",
"2075-2094767",
"2075/08/29",
1466,
"210003502",
null,
"गीता श्रीस काउचा थापा",
2418146,
null,
14224,
"Production",
1800,
0,
"2074/75",
"2075/09/02",
"Cash",
null,
"1",
null,
null,
11019,
"2018/12/17",
0,
"T",
null,
"2018/12/17"
],
[
"2075/76",
"2075-2093892",
"2075/08/28",
1466,
"210003502",
null,
"हेमन्त बुढाथोकी",
2417027,
null,
14224,
"Production",
1400,
0,
"2074/75",
"2075/09/02",
"Cash",
null,
"1",
null,
null,
11019,
"2018/12/17",
0,
"T",
null,
"2018/12/17"
]
]
}
我正在使用Spring Boot and Rest模板。
@GetMapping("/consume")
public void consumeApi(@RequestParam String date) throws IOException {
BankVoucherParams params = setVoucherParams(date);
RestTemplate restTemplate = new RestTemplate();
String token = getBearerToken();
HttpHeaders headers = new HttpHeaders();
headers.setBearerAuth(token);
HttpEntity<BankVoucherParams> request = new HttpEntity<BankVoucherParams>(params, headers);
String response = restTemplate.postForObject(endpoint, request, String.class);
ObjectMapper objectMapper = new ObjectMapper();
Object o = objectMapper.readValue(response,Object.class);
System.out.println(response);
}
在上面的代码中,我得到了字符串形式的响应。我想将每个值映射到pojo类并将其插入数据库。现在,我不知道如何将每个数组映射到我的pojo类中。
答案 0 :(得分:0)
如果pojo在该项目范围内可用,您可以像这样简单地解析整个对象:
ResponseEntity<Object> response = restTemplate.exchange(url, HttpMethod.GET, entity, Object.class);
其中Object
可以用您的pojo代替。所以你会有类似
ResponseEntity<YourClass> response = restTemplate.exchange(url, HttpMethod.GET, entity, YourClass.class);
如果需要映射它,可以使用Gson
或Jackson.
之类的库
编辑:
如下所述,您不会收到键/值对。因此,您需要使用Gson
或Jackson
答案 1 :(得分:0)
您可以将json字符串转换为HashMap,其键为“数据”,值为
List<List<String>>
或
String[][].
然后遍历该值并将其设置为POJO。
如果您想将每个位置动态分配给POJO的特定字段,则可能希望保留位置字段的映射并使用反射来设置字段。 http://tutorials.jenkov.com/java-reflection/fields.html