我使用javascript SDK查询Splunk。在searchParams中,我将输出模式指定为“json_rows”。
var searchParams = {
exec_mode: "normal",
output_mode: "json_rows"
};
但是当我得到输出时,我不会以JSON格式得到它。输出以数组形式出现。
知道出了什么问题吗?我试过“json_cols”,只尝试了“json”。结果相同。
提前致谢。
编辑:2
更多代码
var service = new splunkjs.Service({
username:"xxx",
password:"xxxx",
scheme:"https",
host:"xxxxxx.com",
port:"5500",
version:"5.0"
});
var searchQuery = 'search index=sn impact=1 OR impact=2 | eval time = round( strptime(impact_start,"%Y-%m-%d %H:%M:%S"), 0 )| where time >= ' + 14334627 + ' AND time<=' + 14568862 + '| bucket time span=1d | stats values(number) as incident_name by time';
var searchParams = {
exec_mode: "normal",
output_mode: "JSON"
};
service.oneshotSearch(
searchQuery,
searchParams,
function(err, results) {
if ( results ) {
var incidentResp = {};
incidentResp["data"] = results.rows;
incidentResp["error"] = null;
callback(null, incidentResp);
return;
}
else {
var errResp = {};
errResp["data"] = null;
errResp["error"] =err;
callback(null, errResp);
return;
}
}
);
答案 0 :(得分:0)
我不是100%肯定你在问什么,但让我试着帮忙。
output_mode告诉REST API如何序列化并返回结果,通常是JSON,XML或CSV
鉴于您使用JavaScript SDK将数据提取到您的应用程序中并且实际上没有将结果写入文件,我会保留原样(JSON默认值)
您可以在&#39;结果&#39;中找到实际数据。回应。
例如
service.oneshotSearch( query, params,
function(err, response) {
if (err) throw new Error ( err );
console.log( response.results );
});
尝试更改此行:
incidentResp["data"] = results.rows;:
对此:
incidentResp["data"] = results.results;
...但是,这将是一系列结果。
希望这有帮助