Mesonet API JSON respuesta a la tabla html
Estoy tratando de convertir una respuesta de JSON API en una tabla HTML. Tengo algunas de las piezas que salen correctamente, pero no puedo averiguar cómo profundizar en la respuesta. Quiero conseguir el tiempo de observación, la temperatura y la ráfaga del viento/la velocidad en la mesa. No le gusta cuando pongo otro '.valor' después de cualquiera de las peticiones de OBSERVATIONS. Dice que el valor no está definido. Cualquier ayuda es apreciada!
html
Alaskan Weather Observations
Alaskan Weather Observations
Station Name
Station ID
Longitude
Latitude
Time
Temperature
Wind Speed
Wind Gust
lo que se muestra con mi código actualDatos Estoy tratando de analizar
Pregunta hecha hace 3 años, 4 meses, 28 días - Por bytebard66b1
2 Respuestas:
-
El problema que estás teniendo es que estás tratando de acceder a los valores dentro del objeto
OBSERVATIONS
de una manera incorrecta. En el JSON de respuesta,OBSERVATIONS
es un objeto que contiene subobjetos con nombres comoair_temp_value_1
,wind_speed_value_1
, etc.Para acceder a los valores dentro de estos subobjetos, necesitas usar la notación de corchetes
[nombre_del_subobjeto]
en lugar de puntos (.
) directamente después deOBSERVATIONS
. Aquí te dejo cómo corregir esa parte del código:javascript station_data += '
'+data.STATION[i].OBSERVATIONS['air_temp_value_1'].date_time+' '; station_data += ''+data.STATION[i].OBSERVATIONS['air_temp_value_1'].value+' '; station_data += ''+data.STATION[i].OBSERVATIONS['wind_speed_value_1'].value+' '; station_data += ''+data.STATION[i].OBSERVATIONS['wind_gust_value_1'].value+' ';Usando esta notación, podrás acceder a los valores dentro de los subobjetos de
OBSERVATIONS
y mostrarlos en tu tabla HTML correctamente. Espero que esta corrección te ayude a resolver el problema. ¡Déjame saber si tienes alguna otra pregunta o duda!Respondida el Dec 19, 2020 a las 02:59 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
El principal problema con tu código es que estás intentando acceder a una propiedad de un objeto que no está definido. Específicamente, estás intentando acceder a
data.STATION[i].OBSERVATIONS.air_temp_value_1
, perodata.STATION[i].OBSERVATIONS
no está definido.Para arreglar esto, necesitas verificar si
data.STATION[i].OBSERVATIONS
está definido antes de intentar acceder a sus propiedades. Puedes hacerlo de la sigiente forma:if (data.STATION[i].OBSERVATIONS) { // El objeto OBSERVATIONS está definido, así que es esmable acceder a sus propiedades. station_data += '
' + data.STATION[i].OBSERVATIONS.air_temp_value_1.date_time + ' '; station_data += '' + data.STATION[i].OBSERVATIONS.air_temp_value_1 + ' '; station_data += '' + data.STATION[i].OBSERVATIONS.air_gust_value_1 + ' '; }Además, hay un problema adicional en tu código. Estás intentando acceder a la propiedad
value_1
de los objetosair_temp
,air_gust
yair_speed
dentro del objetoOBSERVATIONS
, pero esos nombres de propiedades no son consistentes con los nombres de las propiedades en los ejemplos de JSON de la documentación de la API.Los nombres de las propiedades correctas son los siguientes:
air_temp_value
air_gust_value
- `air_speed_value`
Así que, el código corregido sería:
if (data.STATION[i].OBSERVATIONS) { // El objeto OBSERVATIONS está definido, así que es esmable acceder a sus propiedades. station_data += '
' + data.STATION[i].OBSERVATIONS.air_temp_value.date_time + ' '; station_data += '' + data.STATION[i].OBSERVATIONS.air_temp_value + ' '; station_data += '' + data.STATION[i].OBSERVATIONS.air_gust_value + ' '; }Con este código corregido, podrás acceder a los valores de tiempo de observación, temeratura y velocidad de viento de los objetos
OBSERVATIONS
y mostrarlos en tu tabla.Respondida el Dec 19, 2020 a las 03:09 - por Gemini
Votos positivos: 0 | Votos negativos: 0