У меня есть JSON, полученный как ответ REST HTTPGET.Это ответ, созданный API Here Map:
{
"response": {
"metaInfo": {
"timestamp": "2019-05-22T15:56:28Z",
"mapVersion": "8.30.96.157",
"moduleVersion": "7.2.201920-3525",
"interfaceVersion": "2.6.56",
"availableMapVersion": [
"8.30.96.157"
]
},
"route": [
{
"waypoint": [
],
"mode": {
"type": "fastest",
"transportModes": [
"car"
],
"trafficMode": "disabled",
"feature": []
},
"leg": [
{
"start": {x
},
"end": {y
},
"length": 43301,
"travelTime": 2191,
"maneuver": [
{
"position": {
"latitude": ,
"longitude":
},
"instruction": "bla",
"travelTime": 74,
"length": 387,
"id": "M1",
"_type": "PrivateTransportManeuverType"
},
{
"position": {
"latitude": ,
"longitude":
},
"instruction": "",
"travelTime": 25,
"length": 12,
"id": "M2",
"_type": "PrivateTransportManeuverType"
},
{
"position": {
"latitude": ,
"longitude":
},
"instruction": "",
"travelTime": 53,
"length": 515,
"id": "M3",
"_type": "PrivateTransportManeuverType"
},
{
"position": {
"latitude": ,
"longitude":
},
"instruction": "",
"travelTime": 59,
"length": 309,
"id": "M4",
"_type": "PrivateTransportManeuverType"
},
{
"position": {
"latitude": ,
"longitude":
},
"instruction": "Arrive at target",
"travelTime": 0,
"length": 0,
"id": "M19",
"_type": "PrivateTransportManeuverType"
}
]
}
],
"summary": {
"distance": 43301,
"trafficTime": 2648,
"baseTime": 2191,
"flags": [
"tunnel",
"motorway",
"builtUpArea"
],
"text": "",
"travelTime": 2191,
"_type": "RouteSummaryType"
}
}
],
"language": "en-us"
}
}
(я убрал 15 путевых точек и координат по соображениям конфиденциальности и длины)
Я хочу получитьвложенный массив «маневрирует» как отсортированный список с приложением springboot и restTemplate.
Я знаю, как добраться до объектов.Я уже использовал JSON2POJO маппер и у меня есть все доступные классы.С
@Bean
public CommandLineRunner run(RestTemplate restTemplate) throws Exception {
return args -> {
ResponseEntity<Response[]> responseEntity = restTemplate
.getForEntity("https://route.api.here.com/routing/7.2/calculateroute.json?app_id=xjipTEag66SG6fNwgEQm&app_code=0eiHle7fs2IZsXChP2sWKQ&waypoint0=geo!" + start + "&waypoint1=geo!" + end + "&mode=fastest;car;traffic:disabled", Response[].class);
Response[] objects = responseEntity.getBody();
HttpStatus statusCode = responseEntity.getStatusCode();
log.info("Status" + statusCode);
Arrays.asList(objects).forEach(maneuver -> log.info(maneuver.toString()));
};
}
Дает мне ошибку десериализации.
@Bean
public CommandLineRunner run(RestTemplate restTemplate) throws Exception {
return args -> {
Response response = restTemplate.getForObject(
"https://route.api.here.com/routing/7.2/calculateroute.json?app_id=xjipTEag66SG6fNwgEQm&app_code=0eiHle7fs2IZsXChP2sWKQ&waypoint0=geo!" + start + "&waypoint1=geo!" + end + "&mode=fastest;car;traffic:disabled", Response.class);
log.info(response.toString());
};
Имеет то, что я могу прочитать отдельные объекты, такие как "ID" и перечислить их в одну строку:
2019-05-22 19:09:34.253 INFO 15928 --- [ main] trackr.GetRest : No active profile set, falling back to default profiles: default
2019-05-22 19:09:34.636 INFO 15928 --- [ main] trackr.GetRest : Started GetRest in 0.561 seconds (JVM running for 1.016)
2019-05-22 19:09:35.067 INFO 15928 --- [ main] klib.trackr.GetRest : [[[M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13, M14, M15, M16, M17, M18, M19]]]
Я рад любым предложениям.Я довольно новичок в Java и Spring restTemplate, я пробовал разные решения, которые нашел в StackOverflow, но либо я их неправильно использую, либо я не правильно понимаю.Очень ценю любой совет.