2017-09-14 52 views
0

嗨,我是从一个SOAP服务获得的数据和转换XML到JSON和获取我需要这样的价值:Lodash深挑

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

有没有办法做这样的事情?

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

因此,我可以得到一个对象与我需要的信息?

+0

如何看起来'result'变量?它的结构是什么?此console.log抛出一个错误'console.log(result ['soap:Envelope'] ['soap:Body'] ['ns2:getFichaGeneralResponse'] ['return'] ['instituciones'] ['datosPrincipales'] [ 'registros'] [1] .valor)' –

回答

1

如果我理解正确,你有一个复杂的对象,你想按指定的路径选择一些道具?

例如,你想从下面的物体获得通过路径a.b.c{ d: 'foo', e: 'bar' }

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>