Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

695
Vistas
Cómo obtener el objeto Date de json Response en mecanografiado

Aquí está mi json:

 { "data": [ { "comment": "3541", "datetime": "2016-01-01" } ] }

Aquí está el modelo:

 export class Job { constructor(comment:string, datetime:Date) { this.comment = comment; this.datetime = datetime; } comment:string; datetime:Date; }

Consulta:

 getJobs() { return this._http.get(jobsUrl) .map((response:Response) => <Job[]>response.json().data) }

El problema es que después de enviar a Job[] , espero que la propiedad de fecha y datetime sea Date , pero es una cadena. ¿No debería lanzarse al objeto Fecha? que me estoy perdiendo aqui?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

@Gunter es absolutamente correcto. Lo único que me gustaría agregar es cómo deserializar el objeto json manteniendo sus propiedades de fecha como fechas y no como cadenas (de la publicación a la que se hace referencia no es tan fácil ver este enfoque).

Aquí está mi intento:

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

Puede ver este enfoque, por ejemplo, aquí: Función JSON.parse en el ejemplo de dateReviver.

Espero que esto ayude.

over 4 years ago · Santiago Trujillo Denunciar

0

No hay forma de saber para TS/JS que este valor es una fecha. Es una cadena y se trata como tal. Se pueden distinguir otros tipos de datos, pero JSON no proporciona ningún soporte especial para la fecha. Necesitas convertirlo manualmente.

Consulte, por ejemplo, esta discusión sobre cómo transportar y convertir una fecha usando JSON . ¿Cómo formateo una fecha de Microsoft JSON?

over 4 years ago · Santiago Trujillo Denunciar

0

Si es posible el uso de un transformador TypeScript personalizado, se podrían usar ts-transformer-dates :

 import { toDates } from 'ts-transformer-dates'; const value = { "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; } console.log(toDates<{data:Job[]}>(value));

Producción:

 { data: [ { comment: '3541', datetime: 2016-01-01T00:00:00.000Z } ] }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda