Angular 7:如何正确解析后端响应以从字符串中提取日期?
我有返回服务中的电影的函数(但也有返回电影集合的另一种方法): 现在,如何正确地从后端api调用转换字符串发布日期(它是ISO8601格式),我应该在哪里做?我看到了类似的答案,建议在JSON解析器中使用一些自定义恢复器函数,但我也可以在模型的构造函数中这样做,所以最好的方法是什么Angular 7:如何正确解析后端响应以从字符串中提取日期?,angular,typescript,deserialization,json-deserialization,Angular,Typescript,Deserialization,Json Deserialization,我有返回服务中的电影的函数(但也有返回电影集合的另一种方法): 现在,如何正确地从后端api调用转换字符串发布日期(它是ISO8601格式),我应该在哪里做?我看到了类似的答案,建议在JSON解析器中使用一些自定义恢复器函数,但我也可以在模型的构造函数中这样做,所以最好的方法是什么 你认为我可以使用moment.js库来进行这种转换吗?或者它是“过度杀伤力”在模型中的构造函数上尝试它,它应该可以工作 this.releaseDate = (obj.releaseDate ) ? new Dat
你认为我可以使用moment.js库来进行这种转换吗?或者它是“过度杀伤力”在模型中的构造函数上尝试它,它应该可以工作
this.releaseDate = (obj.releaseDate ) ? new Date(obj.releaseDate ) : new Date();
谢谢你的回答,但不幸的是,它似乎不起作用。对于服务器响应,根本不会调用构造函数。当将上面的点击替换为下面的:“点击((res:Movie)=>console.log(res.releaseDate.constructor.name))”时,我在控制台中得到“String”类型。我想您需要调用构造函数。所以你可以试试->结果:电影=新电影(结果);我不确定它是否有效。你可能会想,如果你的应用程序很小,那就不是问题了。如果您处理的是大型应用程序,那么您可以从那里创建一个模型服务,您可以调用Constructor,或者将其移动到服务,在那里这样做似乎更好。
export class Movie {
(...)
releaseDate?: Date;
constructor(obj: any) {
(...)
this.releaseDate = obj.releaseDate;
}
}
this.releaseDate = (obj.releaseDate ) ? new Date(obj.releaseDate ) : new Date();