Вы можете создать свою собственную десериализацию, добавив метод к классу и запустив его в обратном вызове GET, или вы можете использовать для этого библиотеку, такую как cerialize для машинописного текста (не знаю ни одногоотличный вариант для JS, я бы создал ручные методы).
Вот пример:
export class Xy {
name: string;
static Deserialize(jsonArray) {
jsonArray.map((json) => {
const xy = new Xy();
xy.name = json.name;
return xy;
}
}
}
И при обратном вызове сделайте что-то вроде:
http.get(...).then((res) => {
const items = Xy.Deserialize(res);
})
В зависимости от вашего случая, может быть, это точно настроить с помощью обработки ошибок и проверки свойств ..
В случае, если вы используете Typescript, я довольно интенсивно использую библиотеку cerialize, потому что она позволяет использовать декораторы для определениятипы сериализации, которые сокращают накладные расходы при более сложных требованиях к наследованию данных и совместимости API.Библиотека обрабатывает массивы без усилий.Ваш пример будет выглядеть примерно так:
import {serialize} from 'cerialize';
export class Xy {
@serialize
public name: string;
}
И при обратном вызове GET:
import {Deserialize} from 'cerialize';
http.get(...).then((res) => {
const items = Deserialize(res, Xy);
})