2017-09-14 1 views
0

Salut, je reçois des données d'un service de savon et la transformation du xml pour JSON et obtenir la valeur que j'ai besoin comme ceci:Lodash profonde choisir

console.log(result['soap:Envelope']['soap:Body']['ns2:getFichaGeneralResponse']['return']['instituciones']['datosPrincipales']['registros'][1].valor) 

est-il possible de faire quelque chose comme ça?

console.log(_.pick(result, 'registros')) 

Donc, je peux obtenir un objet avec les informations dont j'ai besoin?

+0

Comment ressemble variable 'result'? Quelle est sa structure? Ce fichier console.log renvoie une erreur 'console.log (résultat ['soap: Enveloppe'] ['soap: Corps'] ['ns2: getFichaGeneralResponse'] ['return'] ['instituciones'] ['datosPrincipales'] [ 'registros'] [1] .valor) ' –

Répondre

1

Si je vous comprends bien, vous avez un objet compliqué et vous voulez choisir des accessoires par le chemin spécifié?

Par exemple, vous voulez obtenir { d: 'foo', e: 'bar' } par chemin a.b.c de l'objet ci-dessous:

var object = { 
 
    a: { 
 
    b: { 
 
     c: { 
 
     d: 'foo', 
 
     e: 'bar', 
 
     f: 'baz' 
 
     } 
 
    } 
 
    }, 
 
    g: { 
 
    h: 1 
 
    } 
 
}; 
 

 
function pickPropsByPath(object, path, arrayOfPropsNames) { 
 
    return _.pick(_.get(object, path), arrayOfPropsNames); 
 
} 
 

 
console.log(pickPropsByPath(object, 'a.b.c', ['d', 'e'])) // => { d: 'foo', e: 'bar' }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>