如何从打字稿中的json响应获取日期对象

2023-12-12

这是我的 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;
}

Query:

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 函数在 dateReviver 示例中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从打字稿中的json响应获取日期对象 的相关文章

随机推荐