解析json数据中的值

时间:2015-01-28 07:39:53

标签: json node.js

我尝试使用json

node.js数据中获取值

以下是json数据(它是动态的),它可能包含tcp,ipp,http,udp,https等名称。我只显示tcpipp

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] } ] }

2 个答案:

答案 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

FIDDLE