2011-04-30 18 views
5

Si tengo un objeto JSON como esto:JavaScript/JSON: Obtener propiedad desconocida de un objeto

{ 
    "message": { 
     "name": { "stringLengthTooShort": "blub" } 
    } 
} 

El nombre de la propiedad (en este caso) stringLengthTooShort está cambiando cada vez, ¿Cómo podría simplemente obtener la propiedad hija de name con JS? Por el momento tengo message.name, pero ¿cómo podría obtener ahora el hijo de ella?

Respuesta

6

si siempre es la primera propiedad de message.name, usted podría hacer algo como:

var keys = []; 
for (var l in message.name) { 
    if (message.name.hasOwnProperty(l)){ 
    keys.push(l); 
    } 
} 
//=>first property value should now be in message.name[keys[0]]); 
// (its label is keys[0]) 
+1

En los nuevos navegadores, puede utilizar [ 'Object.keys'] (https://developer.mozilla.org/ es/JavaScript/Reference/Global_Objects/Object/keys): 'message.name [Object.keys (message.name) [0]]' – user123444555621

+0

@ Pumbaa80 Lo sé, pero me gusta ofrecer soluciones crossbrowser e incluso IE9 no tiene soporte para tales métodos agradables y prácticos. – KooiInc

Cuestiones relacionadas