1
我一直在玩一个名为JSON-Query的NPM模块,我最初可以使用嵌入在我的js中的JSON创建模块函数。异步查询JSON对象
我花了大约两天试图让它查询外部和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
我能够查询内部JSON以查找我正在查找的密钥。
我意识到我需要在代码生效期间更新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在[NPM] https://www.npmjs.com/package/json-query
找到工作模块谢谢
This Worked!这行代码的功能是什么?我明白obj来自JSON的解析,是数据:函数的回应是什么? –
数据是数组中的关键。 '{data:obj}'表示有一个数组,其中''data“作为键,'obj'作为值。你所调用的函数期望有一个叫做“data”的键,所以你需要使用它。 – smarx