jQuery:将带逗号分隔值的字符串转换为特定的JSON格式

我一直在为一些可能微不足道的事情而浪费时间:

我有一个逗号分隔的电子邮件地址列表,我想将其转换为特定的JSON格式,以便与Mandrill API一起使用( https://mandrillapp.com/api/docs/messages.JSON.html )

我的字符串:

var to = 'bigbadwolf@grannysplace.com,hungry@hippos.com,youtalkin@to.me'; 

我认为它需要是什么:

 [ {"email": "bigbadwolf@grannysplace.com"}, {"email": "hungry@hippos.com"}, {"email": "youtalkin@to.me"} ] 

我有一个JSFiddle我几乎拥有它我想: http : //jsfiddle.net/5j8Z7/1/

我一直在研究几个jQuery插件,其中包括: http : //code.google.com/p/jquery-json但我不断收到语法错误。

关于SO的另一篇文章建议手工完成: JavaScript关联数组到JSON

这可能是一个微不足道的问题,但Mandrill API的Codecadamy文档已经停止了一段时间,并且没有合适的示例可用。

 var json = []; var to = 'bigbadwolf@grannysplace.com,hungry@hippos.com,youtalkin@to.me'; var toSplit = to.split(","); for (var i = 0; i < toSplit.length; i++) { json.push({"email":toSplit[i]}); } 

尝试将循环更改为:

  var JSON = []; $(pieces).each(function(index) { JSON.push({'email': pieces[index]}); }); 

怎么样:

 var to = 'bigbadwolf@grannysplace.com,hungry@hippos.com,youtalkin@to.me', obj = [], parts = to.split(","); for (var i = 0; i < parts.length; i++) { obj.push({email:parts[i]}); } //Logging for (var i = 0; i < obj.length; i++) { console.log(obj[i]); } 

输出:

 Object {email: "bigbadwolf@grannysplace.com"} Object {email: "hungry@hippos.com"} Object {email: "youtalkin@to.me"} 

演示: http : //jsfiddle.net/tymeJV/yKPDc/1/

试试这个ES6版本,它可以更好地执行代码片段。

 'use strict'; let to = 'bigbadwolf@grannysplace.com,hungry@hippos.com,youtalkin@to.me'; let emailList = to.split(',').map(values => { return { email: values.trim(), } }); console.log(emailList);