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