2013-08-30 12 views
9

Zostałem tracąc godzin nad czymś, co może być trywialne:jQuery: Konwersja znaków z oddzielonych przecinkami wartości do określonego formatu JSON

Mam lista oddzielonych przecinkami adresów e-mail, które chcę konwertować do określonego formatu JSON, do stosowania z Mandrill API (https://mandrillapp.com/api/docs/messages.JSON.html)

mój ciąg:

var to = '[email protected],[email protected],[email protected]'; 

Co (chyba) musi być:

[ 
    {"email": "[email protected]"}, 
    {"email": "[email protected]"}, 
    {"email": "[email protected]"} 
] 

Mam JSFiddle w którym prawie mają to myślę: http://jsfiddle.net/5j8Z7/1/

Szukałem na kilka wtyczek jQuery, wśród których: http://code.google.com/p/jquery-json ale wciąż otrzymuję błędy składniowe.

Kolejny post na SO zasugerował to robić ręcznie: JavaScript associative array to JSON

To może być trywialne pytanie, ale dokumentacja Codecadamy API Mandrill został w dół przez jakiś czas i nie ma żadnych porządnych dostępne przykłady.

+0

Można po prostu podzielić go na przecinki, ale jeśli nie masz kontroli nad adresów e-mail, który jest nie w 100% bezpieczne, ponieważ prawidłowy adres e-mail może mieć przecinek w nim. – Pointy

Odpowiedz

2

Spróbuj zmienić pętlę do tego:

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

Dzięki za odpowiedź! Zaakceptowałbym to, ale @Anton był pierwszy ;-) – maartenmachiels

2

Jak o:

var to = '[email protected],[email protected],[email protected]', 
    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]); 
} 

wyjściowa:

Object {email: "[email protected]"} 
Object {email: "[email protected]"} 
Object {email: "[email protected]"} 

Demo: http://jsfiddle.net/tymeJV/yKPDc/1/

+0

Wow, co za dziwna technika. Nie widziałem tego wcześniej! – maartenmachiels

Powiązane problemy