2015-09-17 83 views
0

我有我的JSON:XPath或Defiant.js和获取节点信息

{ 
    "data": { 
    "header": { 
     "version": 1, 
     "last_updated": "2015-09-16T14:09:22Z" 
    }, 
    "frequent" : { 
     "keywords": [ 
     { 
      "keyword":"roi", 
      "keyword":"subjectrecord", 
      "keyword":"evidence", 
      "keyword":"case", 
      "keyword":"account", 
      "keyword":"supervisor", 
      "keyword":"legacy tecs" 
     } 
     ] 
    }, 
    "body": { 
     "items": [ 
     { 
      "item": { 
      "type": "pdf", 
      "title": "title 1", 
      "updated_time": "2015-09-16T14:09:22Z", 
      "keywords": [ 
       { 
       "keyword":"supervisor" 
       }, 
       { 
       "keyword":"manager" 
       }, 
       { 
       "keyword":"title 1" 
       } 
      ] 
      } 
     }, 
     { 
      "item": { 
      "type": "pdf", 
      "title": "title 2", 
      "updated_time": "2015-09-16T14:09:22Z", 
      "keywords": [ 
       { 
       "keyword":"supervisor" 
       } 
      ] 
      } 
     }, 
     { 
      "item": { 
      "type": "pdf", 
      "title": "title 3", 
      "updated_time": "2015-09-16T14:09:22Z" 
      } 
     } 
     ] 
    } 
    } 
} 

什么,我希望能够做的是搜索“身体”,回到哪里与之匹配的关键字出现的任何项目。因此,举例来说,如果我搜索“监督员”我的结果应该是这样的:

"item": { 
     "type": "pdf", 
     "title": "title 1", 
     "updated_time": "2015-09-16T14:09:22Z", 
     "keywords": [ 
      { 
      "keyword":"supervisor" 
      }, 
      { 
      "keyword":"manager" 
      }, 
      { 
      "keyword":"title 1" 
      } 
     ] 
     } 
    }, 
    { 
     "item": { 
     "type": "pdf", 
     "title": "title 2", 
     "updated_time": "2015-09-16T14:09:22Z", 
     "keywords": [ 
      { 
      "keyword":"supervisor" 
      } 
     ] 
     } 
    } 

执行以下操作,只返回关键字。

var results = JSON.search(potentials, '//*[keyword="'+query+'"]'); 

回答

0

看跌/ ..在查询结束

var results = JSON.search(potentials, '//*[keyword="'+query+'"]/..');