Todavía novata @this, espero que no sea una pregunta tonta.

Me sale de un backend de Java un JSON. Para esta pregunta, asigné un con esa cadena json.

let a={"status":"ok","data":[{"blablaMOUTI blablaDAN":"","blablaDAA blablaALHAZO":"","blablaMAR blablaBDAN":"","blablaHIM blablaDAN":""}]};
let b=a.data;
let s="";
for (i in b) {s += b[i]};

$('#msg').html(s);

Como salida obtengo objeto Objeto (pequeño capital, gran capital)

Al final, necesito pasar por encima de "datos" e imprimir o almacenar esos nombres clave: blablaMOUTI blablaDAN, blablaDAA blablaALHAZO ... en la pantalla o en una lista de matriz simple. Los valores después de los nombres de teclas o una cadena vacía, está bien, necesito solo los nombres clave.

Encontré algunas preguntas semi simulares, pero no consigo que funcione. Las respuestas en las que encontré toda la confianza ya conozco los nombres clave.

0
Danny Doubbel 7 may. 2020 a las 14:31

3 respuestas

La mejor respuesta

Puedes hacerlo así:

let a={"status":"ok","data":[{"blablaMOUTI blablaDAN":"","blablaDAA blablaALHAZO":"","blablaMAR blablaBDAN":"","blablaHIM blablaDAN":""}]};

var keys = [];
for(i = 0; i< a.data.length; i++){
   for(var k in a.data[i]) {     
    keys.push(k);
   }
}

console.log(keys)

Para fines de prueba, esto completará una matriz con las claves que desea, pero puede manipular el resultado como desee

1
GoranLegenda 7 may. 2020 a las 11:42
Object.getOwnPropertyNames(a.data[0]);

Output:  ["blablaMOUTI blablaDAN", "blablaDAA blablaALHAZO", "blablaMAR blablaBDAN", "blablaHIM blablaDAN"]

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames

1
kopz 7 may. 2020 a las 11:39

Prueba esto:

Object.getOwnPropertyNames(a.data[0]);

Output:  ["blablaMOUTI blablaDAN", "blablaDAA blablaALHAZO", "blablaMAR blablaBDAN", "blablaHIM blablaDAN"]

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames

1
kopz 7 may. 2020 a las 11:42