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

153
Vistas
Cómo extraer solo ciertos campos del objeto de respuesta Http

Soy bastante nuevo en Angular y estoy tratando de obtener solo ciertos valores del objeto de respuesta Http.

En mi servicio, estoy haciendo una solicitud de obtención para obtener datos meteorológicos para una ciudad determinada de la siguiente manera:

 export class CityService { private baseUrl = 'https://api.openweathermap.org'; constructor(private http: HttpClient) { } getCity(name: string){ return this.http.get(`${this.baseUrl}/data/2.5/weather?q=${name}&appid=${environment.weatherApiKey}`); } }

Ahora, en el componente, cierro la sesión de la respuesta así:

 ngOnInit(): void { this.cityService.getCity('lucija').subscribe(data => { console.log(data) }); }

La respuesta en sí es solo un objeto con muchos campos (también anidados), que la mayoría de ellos no necesito.

También configuré una interfaz en la que me gustaría "guardar" en ciertos campos de respuesta:

 export interface City { name: string; description: string; icon: string; main: object; search: string; }

¿Cómo puedo hacer eso? ¡Salud!

EDITAR: según la respuesta a continuación, obtuve 2 errores, que resolví así:

 getCity(name: string): Observable<City>{ return this.http.get(`${this.baseUrl}/data/2.5/weather?q=${name}&appid=${environment.weatherApiKey}`) .pipe(map((res: any) => <City>{ name: res.name, description: res.weather[0].description, icon: `http://openweathermap.org/img/w/${res.weather[0].icon}.png`, main: res.main, search: name }));
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Una solución podría ser mapear el objeto en su servicio. Entonces su servicio devolverá el Objeto de Ciudad.

 export class CityService { private baseUrl = 'https://api.openweathermap.org'; constructor(private http: HttpClient) { } getCity(name: string): Observable<City>{ return this.http.get(`${this.baseUrl}/data/2.5/weather?q=${name}&appid=${environment.weatherApiKey}`) .pipe(map((res) => { return { name: res.cityName }; }); // only added name as example. In the final code map all the values to the correct City field. } }

Si no desea que su servicio devuelva siempre el objeto Ciudad, puede realizar esta asignación en su componente.

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