我的应用程序按需启动AWS ElasticBeanstalk环境。这些EB环境会自动订阅AWS SNS主题,该主题通过HTTP POST将消息发送到我的应用程序webhook URL。
问题在于以下是一个示例"消息"对象和数据以纯文本的形式发送到webhook,因此消息中到处都有\n
的实例对我没用。我喜欢哪里有一个新的对象,我的应用程序可以清楚地访问(通过Message.Timestamp,Message.Message等)
Message: 'Timestamp: Fri Aug 21 22:25:23 UTC 2015\nMessage: Adding instance 'xxx' to your environment.\n\nEnvironment: xxx\nApplication: xxx\n\nEnvironment URL: xxx\nNotificationProcessId: xxx'
这可能吗??
答案 0 :(得分:2)
<强>不确定即可。只需使用一些RegExp
和一些.split()
方法和BAM。
var a = "Timestamp: Fri Aug 21 22:25:23 UTC 2015\nMessage: Adding instance 'xxx' to your environment.\n\nEnvironment: xxx\nApplication: xxx\n\nEnvironment URL: xxx\nNotificationProcessId: xxx";
// Break it up at the \n's
var b = a.split(/\n+/);
// I don't like using the same variable that I'm messing with, so let's make a new one.
var Message = {};
// Loop through, break each string where the ": " is, and assign key: value to Message.
b.forEach(function(str) {
var data = str.split(/:\s/);
// Get rid of whitespace in the object key.
Message[data[0].replace(/\s/, "")] = data[1];
});
// See the results of each step.
console.log(a, b, "Message:", Message);
在您的示例中,有\n
和一些\n\n
的实例,因此此代码将适应(或更多)。