30

現在、Angular 4.3 の新しい HttpClient に切り替えています。1 つの利点は、GET メソッドで型情報を指定できることと、返された JSON が指定された型に解析されることです。

this.http.get<Person> (url).subscribe(...)

残念ながら、JSON 内のすべての日付は、結果のオブジェクトでは数値と​​して解析されます (おそらく、Java Date オブジェクトがバックエンドで数値としてシリアル化されるためです)。

古い Http では、次のように JSON.parse() を呼び出すときにリバイバー関数を使用しました。

this.http.get(url)
  .map(response => JSON.parse(response.text(), this.reviver))

そしてリバイバー関数で、数字から日付オブジェクトを作成しました:

reviver (key, value): any {
  if (value !== null && (key === 'created' || key === 'modified'))
    return new Date(value);

  return value;
}

新しい HttpClient にも同様のメカニズムはありますか? または、JSON が解析されるときに変換を行うためのベスト プラクティスは何ですか?

4

5 に答える 5