2016-10-05 7 views
1

Ich frage Splunk mit Javascript SDK. In den searchParams habe ich den Ausgabemodus als "json_rows" angegeben.Daten kommen nicht im JSON-Format von Splunk Javascript sdk

Aber immer noch, wenn ich die Ausgabe bekomme, bekomme ich es nicht in einem JSON-Format. Die Ausgabe kommt als Array.

Irgendeine Idee, was schief geht? Ich habe "json_cols" und nur "json" auch versucht. Gleiches Ergebnis.

Vielen Dank im Voraus.

Edit: 2

Einige mehr des Codes

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; 
     } 

    } 
); 
+1

Können Sie mehr von Ihrem Code zeigen? – Shakeel

Antwort

0

Ich bin nicht 100% sicher, was Sie fragen, aber lass mich dir zu helfen versuchen.

output_mode sagt nur das REST-API, wie die Ergebnisse zur Serialisierung und zurück, entweder in der Regel JSON, XML oder CSV

Gegeben Sie den JavaScript-SDK verwenden Daten in Ihre Anwendung zu ziehen und nicht wirklich die Ergebnisse mit in Datei geschrieben, würde ich so lassen wie es ist (JSON Standard)

Sie finden die tatsächlichen Daten in den 'Ergebnissen' der Antwort.

z.

service.oneshotSearch(query, params, 
    function(err, response) { 
     if (err) throw new Error (err); 
     console.log(response.results); 
}); 

Versuchen Sie, diese Zeile zu ändern:

incidentResp["data"] = results.rows;: 

Um dies:

incidentResp["data"] = results.results; 

... aber ja, wird dies eine Reihe von Ergebnissen sein.

Hoffe, das hilft