我正在开发一个 Lambda 函数,该函数会将 AWS ELB 日志推送到 ElasticSearch。我正在从 S3 读取 ELB 日志,每个文件包含大约 500 行,如下所示:
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)" - -
由于字符串包含空格、分号、嵌套字符串、加号等。我真的不知道将每一行转换为 JSON 的最佳方法。我尝试过使用 split() ,但由于字符串中存在所有不寻常的字符,因此无法让它发挥良好的作用。
我的计划是使用 AWS here. 记录的字段设置键:值对
非常欢迎任何建议。
谢谢。
最佳答案
您可以使用 JSON 函数:
JSON.parse(yourStringYouWantToPass);
要删除空格,您可以使用正则表达式,如下所示:
.replace(/\s+/g, '');
\s 是“空格”的正则表达式,g 是“全局”标志,表示所有\s(空格)。
关于json - node.js 将包含空格和嵌套字符串的字符串转换为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38869200/