我尝试使用json
node.js
数据中获取值
以下是json数据(它是动态的),它可能包含tcp,ipp,http,udp,https
等名称。我只显示tcp
和ipp
sample json
[ { '$':
{ name: 'tcp',
showname: 'tnternet crinting Protocol',
size: '584',
pos: '202' },
field: [ [Object], [Object], [Object], [Object] ] },
{ '$':
{ name: 'ipp',
showname: 'Internet Printing Protocol',
size: '584',
pos: '202' },
field: [ [Object], [Object], [Object], [Object], [Object], [Object] ] } ]
我只需要获取ipp
的详细信息。
(不使用sample[1]
的任何其他方法,例如json数据中的name =ipp
example
{ '$':
{ name: 'ipp',
showname: 'Internet Printing Protocol',
size: '584',
pos: '202' },
field:
[ { '$': [Object] },
{ '$': [Object] },
{ '$': [Object] },
{ '$': [Object], field: [Object] },
{ '$': [Object], field: [Object] },
{ '$': [Object] } ] }
答案 0 :(得分:2)
您可以使用lodash执行以下操作:
var result = _.result(_.find(list, { '$': {'name':'ipp'} }), '$');
Plunker: http://plnkr.co/edit/unh9wZuDCnIETE7EWHmD?p=preview
Lodash: https://lodash.com/docs#find
答案 1 :(得分:1)
你必须迭代,并寻找名称
var ipp = null;
sample.forEach(function(o) {
if ( o['$'].name === 'ipp' ) {
ipp = o;
return false;
}
});
// ipp === object here