Я понял странную вещь с моим проектом типа Angular2. У меня есть объекты, входящие в веб-сервис, который имеет тип «Уровень» (он имеет те же свойства, что и Json, исходящие из webservice). Во время выполнения выясняется, что свойства Уровня из webservice имеют заглавные буквы (случай Pascal) в начале, а те, что в моем проекте машинописного текста, имеют небольшие (видимые в инструменте отладки разработчиков браузера).Карта данных webservice правильно в объект машинописного текста (сопоставление объектов с заглавными буквами/паскаль для случая с верблюдом)
Я думаю, мне нужно каким-то образом сопоставить свойства json, а не делать актеры, написав «как уровень []» везде. Как мне это сделать правильно?
Update в отношении вопроса, что я должен разместить код:
(контроллер)
ngOnInit(): void {
this.levelsObservable = this.levelsService.getAllLevels();
this.levelsObservable.subscribe(
data => console.log(data)
);
}
(Service)
observable : Observable<Response>;
getAllLevels(): Observable<Level[]> {
this.observable = this.achievementsService.getAllAchievements(this.allLevelsUrlPart);
return this.observable
.map((response: Response) => {
const srcData = response.json() as Level[];
return srcData;})
.catch(error => this.handleError(error));}
getAllAchievements(detailPath): Observable<Response> {
// prepare request url and header
this.specificUrl = this.webServiceUrl + detailPath;
this.headers.append('Content-type', 'application/json');
let options = new RequestOptions({ headers: this.headers });
this.result = this.http.get(this.specificUrl, options)
.catch(error => this.handleError(error));
return this.result;}
Обновление: Я полированный мой код немного с помощь одного ответа ниже (не интегрирована выше, потому что не является необходимой для решения основной проблемы). Я попытался использовать другой ответ снизу, чтобы добраться до корпусов верблюдов, но он не работал (у меня есть массив, а в массиве - объекты со свойствами, но свойства объекта недоступны с помощью методов итератора).
Обновление: Я наконец-то справился с этим (!) :) Я немного сократил это сообщение и теперь опубликую свое решение ниже. Это точно не самое красивое, но я рад, что его можно найти в течение нескольких часов. Спасибо всем, кто помогает мне с их огромным вкладом!
обновление ваш пост с кодом, с которым мы не можем помочь – Aravind
Вам нужно написать функцию или метод, который берет необработанный объект из JSON и преобразует его в 'Level'. Обратите внимание, что вопросы SO должны иметь [mcve] в них, а не только ссылку на всю кодовую базу в другом месте. – jonrsharpe
Спасибо, jonrsharpe. Можете ли вы объяснить, как это сделать? Итак, где я могу написать эту функцию и где ее лучше всего назвать? Я попытаюсь сделать минимальный пример – Nadine