这是我的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对象吗?我在这里想念什么?
Job[]
datetime
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示例中的函数。
希望这可以帮助。