11

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

我有一个逗号分隔的电子邮件地址列表,我想将其转换为特定的 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 associative array to JSON

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

4

4 回答 4

20
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]});
}
于 2013-08-30T14:07:51.920 回答
4

试试这个具有更好执行代码片段的 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);

于 2017-04-08T16:51:50.693 回答
3

尝试将循环更改为:

    var JSON = [];
    $(pieces).each(function(index) {
        JSON.push({'email': pieces[index]});   
    });
于 2013-08-30T14:10:16.553 回答
3

怎么样:

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/

于 2013-08-30T14:11:41.640 回答