Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 7:如何正确解析后端响应以从字符串中提取日期?_Angular_Typescript_Deserialization_Json Deserialization - Fatal编程技术网

Angular 7:如何正确解析后端响应以从字符串中提取日期?

Angular 7:如何正确解析后端响应以从字符串中提取日期?,angular,typescript,deserialization,json-deserialization,Angular,Typescript,Deserialization,Json Deserialization,我有返回服务中的电影的函数(但也有返回电影集合的另一种方法): 现在,如何正确地从后端api调用转换字符串发布日期(它是ISO8601格式),我应该在哪里做?我看到了类似的答案,建议在JSON解析器中使用一些自定义恢复器函数,但我也可以在模型的构造函数中这样做,所以最好的方法是什么 你认为我可以使用moment.js库来进行这种转换吗?或者它是“过度杀伤力”在模型中的构造函数上尝试它,它应该可以工作 this.releaseDate = (obj.releaseDate ) ? new Dat

我有返回服务中的电影的函数(但也有返回电影集合的另一种方法):

现在,如何正确地从后端api调用转换字符串发布日期(它是ISO8601格式),我应该在哪里做?我看到了类似的答案,建议在JSON解析器中使用一些自定义恢复器函数,但我也可以在模型的构造函数中这样做,所以最好的方法是什么


你认为我可以使用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();