Я получаю строку JSON из API и хочу десериализовать ее на своем веб-сайте Angular 6.
Я не знаю, как работают словари в TypeScript.Поэтому я стараюсь избегать их настолько, насколько могу, когда это нужно получить от API.
Когда я делаю:
console.log(JSON.parse(viewed_availab));
Я вижу этот результат:
[{
"2019-05-10T00:00:00": {
"TotalStopsCount": null,
"TotalRoutesCount": null,
"TotalStopsCountAfterBooking": null,
"OccupancyRate": null,
"OccupancyRateAfterBokking": null,
"ZoneId": null,
"DomainName": "MTH",
"Date": "2019-05-10T00:00:00",
"IsAvailable": false,
"Status": {
"Message": "Not enough time for items to reach final destination",
"StatusID": 1
},
"IdDomains": null,
"Items": []
},
"2019-05-10T00:00:00": {
"TotalStopsCount": null,
"TotalRoutesCount": null,
"TotalStopsCountAfterBooking": null,
"OccupancyRate": null,
"OccupancyRateAfterBokking": null,
"ZoneId": null,
"DomainName": "MTH",
"Date": "2019-05-10T00:00:00",
"IsAvailable": false,
"Status": {
"Message": "Not enough time for items to reach final destination",
"StatusID": 1
},
"IdDomains": null,
"Items": []
}]
И вот запрос, который я выполняю, чтобы получить эту строку:
this.dataService.post('cleard.api.timeslot.viewed_availabilities', new ViewedAvailabilityParams(search.postalCode, search.userName, search.date, search.businessUnitId, search.originLocationId))
.then((viewed_availab: string) => {
...
}).catch((error) => { this.searching = false; });
Я бы хотел, чтобы результат был в словаре машинописи:
Dictionary<Date, Availibility> // in a typescript way.
, где дата представляетключ (первая строка Json), а доступность представляет содержимое:
{"TotalStopsCount": null,
"TotalRoutesCount": null,
"TotalStopsCountAfterBooking": null,
"OccupancyRate": null,
... and so on }
(у меня уже есть модель для доступности).