asynchronous查询JSON对象

我一直在玩一个叫做JSON-Query的NPM模块,我原本可以使用JSON中embedded的JSON模块来实现模块function。

我花了大约两天的时间试图让它查询JSON是外部和JSON文件。

正在运行的原始代码看起来像这样。

var jsonQuery = require('json-query') var data = { people: [ {name: 'Matt', country: 'NZ'}, {name: 'Pete', country: 'AU'}, {name: 'Mikey', country: 'NZ'} ] } jsonQuery('people[country=NZ].name', { data: data }) //=> {value: 'Matt', parents: [...], key: 0} ... etc 

我能够查询内部JSONfind我正在寻找的关键。

我意识到我需要在代码生效时更新JSON的能力,所以我将JSON移到了自己的文件中。

目前我的主要JS文件看起来像这样。

 var jsonQuery = require('json-query'); var fs = require('fs'); function querydb(netdomain){ fs.readFile('./querykeys.json', 'utf8', function (err, data) { if (err){console.log('error');} var obj = JSON.parse(data); console.log(jsonQuery('servers[netshare=Dacie2015].netdomain', { obj: obj })); }); } querydb(); 

包含json的我的JSON文件如下所示。

 { "servers": [ {"netdomain": "google.com", "netshare": "password", "authip":"216.58.203.46"}, {"netdomain": "localhost", "netshare": "localghost", "authip":"127.0.0.1"}, {"netdomain": "facebook.com", "netshare": "timeline", "authip":"31.13.69.228"} ] } 

我遇到了这个问题,无法查询JSON,当运行QueryDB()函数时,无论查询JSON的位置是什么,我都没有响应定位我的密钥。

目前,当我尝试查询JSON文件时,从服务器获得的响应是

 { value: null, key: 'netdomain', references: [], parents: [ { key: 'servers', value: null }, { key: null, value: null } ] } 

为了清楚起见,我相信我的问题是我称呼我的对象的方式,我玩过JSON-Query的结构并且无法完成能够隔离密钥。

任何帮助,这将是惊人的,我正在使用的模块可以在NPM上find[NPM] https://www.npmjs.com/package/json-query

谢谢

我认为这只是一个错字。 不应该这样:

 obj: obj 

是这个吗?

 data: obj