Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

694
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda