2016-08-10 2 views
1

Ich arbeite an einer Lambda-Funktion, die AWS ELB-Protokolle an ElasticSearch anlegt. Ich lese die ELB-Logs von S3, und jede Datei enthält etwa 500 Zeilen wie diese:node.js Zeichenfolge mit Whitespace und verschachtelten Strings in JSON konvertieren

2016-08-10T01:03:42.216242Z foaas 66.249.79.176:61945 172.31.45.185:80 0.000044 0.194952 0.000039 200 200 0 30 "GET http://www.foaas.com:80/you/JSON/kelly HTTP/1.1" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" - - 

Da die Zeichenfolge enthält Leerzeichen, Semikolons, verschachtelte Strings, Pluszeichen usw. ich wirklich ratlos bin der beste Weg, um jede Zeile in JSON zu konvertieren. Ich habe versucht, mit split() zu spielen, aber ich kann es nicht mit allen ungewöhnlichen Zeichen in der Saite spielen.

Mein Plan ist es, Setup-Schlüssel: Wert-Paare unter Verwendung der dokumentierten Felder durch AWS here.

Irgendwelche Vorschläge wäre sehr zu begrüßen.

Vielen Dank.

Antwort

1

können Sie die JSON-Funktion:

JSON.parse(yourStringYouWantToPass); 

weißen Flecken entfernen Sie Regex wie folgt verwenden können:

.replace(/\s+/g, ''); 

Die \ s ist regex für 'Leerzeichen' und g ist die "global" -Flag, was ALL \ s (weiße Leerzeichen) bedeutet.

Verwandte Themen