json - 如何从 typescript 中的json响应中获取日期对象

标签 json typescript angular

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

相关文章:

angular - 大于 Angular Validator 中的跨域验证

angular - 如何处理需要 AfterViewInit 的 OnChanges

angular - 从 window.object 访问 Angular NgZone 实例

php - Twitter user_timeline.json 仅显示最新推文,即使计数 = 5

java - 为什么 int[] 被视为对象而不是对象数组

python - 如何循环遍历整个 JSON 文件并将数据提取到变量中

javascript - 如何将时刻日期从时隙拆分为数组?

python - 如何在 python 中解析 json 字符串而不修改它?

javascript - 将 react 文本字段输入值作为参数传递给方法

javascript - 在 TypeScript 中需要一个 JavaScript Node.js 模块(未设置 allowJs)