Una API devuelve una cadena de texto que se ve así (xxx se usa por seguridad):
{"xxx":{"xxx":{"xxx":{"xxx":{"results":[{"latest.GigabytesIngested":12641.824682336}]}}}}}Si hago esto:
console.log(JSON.parse(body).xxx.xxx.xxx.xxx.results[0]);Me sale esto, que está bien:
{ 'latest.GigabytesIngested': 12641.82487968 }Mi problema es que solo quiero tomar el número. El siguiente intento no funciona, tal vez porque hay un punto en el nombre de la clave, o tal vez porque lo estoy haciendo mal.
console.log(JSON.parse(body).xxx.xxx.xxx.xxx.results[0].latest.GigabytesIngested);Sí, el punto en la clave es el problema. Debe usar una forma alternativa de hacer referencia a la clave.
console.log(JSON.parse(body).xxx.xxx.xxx.xxx.results[0]["latest.GigabytesIngested"]);o
var result = JSON.parse(body).xxx.xxx.xxx.xxx.results[0]; var lgi = result["latest.GigabytesIngested"]; console.log(lgi);@derpirscher respondió correctamente en un comentario:
console.log(JSON.parse(body).data.actor.account.nrql.results[0]['latest.GigabytesIngested']);