Доброго времени суток!
Пишу небольшое приложение и необходимо замаппить json, содержащий массив объектов в массив объектов. В Java это решается через ModelMapper, MapStruct и т.д. А вот, как это реализовать в ts / js не знаю.
json приходит в ответе на post запрос сделанный через axios.
let routingRequest: RoutingRequest = new RoutingRequest(coordinates);
axios({
method: 'post',
url: routingUrl,
data: routingRequest,
headers: {
'Content-Type': 'application/json'
}
}).then(function (response: AxiosResponse) {
let routes: Route[] = [];
response.data.forEach(
(route: any) => {
routes.push(route as Route)
}
)
}).catch(function (error: AxiosError) {
console.log(error);
});
Пример, json который приходит:
[
{
"instructions": [
{
"turnDescription": "Продолжите движение",
"distance": 130.26291709756794,
"time": 23447,
"sign": 0,
"name": "",
"points": [
{
"latitude": 53.901085505509265,
"longitude": 27.55511741648531
},
{
"latitude": 53.9010582,
"longitude": 27.5552493
},
{
"latitude": 53.9013356,
"longitude": 27.556052
}]
}],
"description": [],
"distance": 2887.358604882371,
"ascend": 0.0,
"descend": 0.0,
"routeWeight": 506.1757242634384,
"time": 304025,
"pointsOrder": []
}
]
Модели, которые я хочу использовать:
export class Route {
private instructions: Instruction[];
private description: number[];
private distance: number;
private ascend: number;
private descend: number;
private routeWeight: number;
private time: number;
private pointsOrder: number[];
// constructors, getters, setters
}
export class Instruction {
private turnDescription: string;
private distance: number;
private time: number;
private sign: number;
private name: string;
private points: Point[];
// constructors, getters, setters
}
export class Point {
private latitude: number;
private longitude: number;
// constructors, getters, setters
}
При попытке десериализовать в массив объектов получаю либо ошибку в ветке catch
e is undefined
, либо просто
undefined
К сожалению, не удалось найти нужную информацию в интернете
Буду рад любой помощи.