这是我的 json:
{
"data": [
{
"comment": "3541",
"datetime": "2016-01-01"
}
]
}
这是模型:
export class Job {
constructor(comment:string, datetime:Date) {
this.comment = comment;
this.datetime = datetime;
}
comment:string;
datetime:Date;
}
查询:
getJobs() {
return this._http.get(jobsUrl)
.map((response:Response) => <Job[]>response.json().data)
}
问题是在转换到 Job[]
之后,我希望 datetime
属性为 Date
但它是字符串。它不应该转换到 Date 对象吗?我在这里缺少什么?
最佳答案
@Gunter 完全正确。我唯一想添加的实际上是如何反序列化 json 对象,将其日期属性保持为日期而不是字符串(从引用的帖子中看这种方法并不容易)。
这是我的尝试:
export class Helper
{
public static Deserialize(data: string): any
{
return JSON.parse(data, Helper.ReviveDateTime);
}
private static ReviveDateTime(key: any, value: any): any
{
if (typeof value === 'string')
{
let a = /\/Date\((\d*)\)\//.exec(value);
if (a)
{
return new Date(+a[1]);
}
}
return value;
}
}
例如,您可以在此处查看此方法:JSON.parse Function在 dateReviver 示例中。
希望这对您有所帮助。
关于json - 如何从 typescript 中的json响应中获取日期对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35917808/