以下是我的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)
}

Problem is that after casting to Job[] i expect datetimeproperty to be Date but it is string. Shouldn't it cast to Date object? What am i missing here?

推荐答案

@冈特是绝对正确的.我唯一想补充的是,如何反序列化json对象,将其日期属性保留为日期而不是字符串(从引用的帖子中可以看出,这种方法并不容易看到).

Here is my attempt:

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;
    }
}

您可以在这里看到这种方法,例如:dateReviver示例中的JSON.parse Function.

希望这能帮上忙.

Json相关问答推荐

Vega通孔信号中的动态梯度

JOLT将对象名作为新属性添加到主体中

从JSON格式提取数据时分隔通用名称

Jolt将键和值转换为单独的数组集

时间序列的Vega Lite分组条形图

如何用JQ打印JSON文件的路径和键值

震动范围改善

Python 将 struct 化文本转换和筛选为对象

将boost::beast::multibuffer转换为std::istream

Golang / Go - 如果 struct 没有字段,如何将其编组为空?

如何使用 Swift 从 NSURLSession 获取 cookie?

编写 JSON 日志(log)文件的格式?

android - 在 adb logcat 输出中格式化 json 字符串

如何在 swift 2 中获取 Alamofire.request().responseJSON 的结果值?

使用 API 搜索维基百科

有没有办法使用 Jackson 将 Map 转换为 JSON 表示而不写入文件?

我应该如何处理 JSON 中的 HATEOAS 链接和引用?

JSON 和 BSON 哪个更轻量级?

如何从 jQuery ajax 调用将复杂对象传递给 ASP.NET WebApi GET?

是否有一个 PHP 函数只在双引号而不是单引号中添加斜杠