2013-08-30 19 views
9

virgülle ayrılmış değerler ile dize dönüştürme Önemsiz olabilir şeye saatten fazla kaybediyorum:jQuery: Belirli JSON biçiminde

İstediğim virgülle ayrılmış e-posta adreslerinin bir listesini var Mandrill API ile kullanılmak üzere belirli bir JSON biçimine dönüştürmek (https://mandrillapp.com/api/docs/messages.JSON.html)

Benim dizesi:

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

ne (bence) olması gerekenden:

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

Ben Neredeyse sahip olduğu bir JSFiddle var sanırım: http://code.google.com/p/jquery-json Ama dizimi hatalarının almaya devam: http://jsfiddle.net/5j8Z7/1/

ben arasında birkaç jQuery eklentileri içine bakıyordum. JavaScript associative array to JSON

Bu önemsiz bir soru olabilir ama Mandrill API Codecadamy dokümantasyon aşağı bir süredir olmuştur ve hiçbir iyi örnekler vardır:

SO üzerinde başka sonrası elle yapıyor önerdi. Buna döngü değişen

+0

'use strict'; let to = '[email protected],[email protected],[email protected]'; let emailList = to.split(',').map(values => { return { email: values.trim(), } }); console.log(emailList);

sadece virgül üzerinde bölünmüş, ancak olabilir, geçerli bir e-posta adresi içinde bir virgül olabilir, çünkü% 100 güvenli e-posta adresleri üzerinde herhangi bir kontrolü varsa. – Pointy

cevap

2

Dene:

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

Cevabınız için teşekkürler! Bunu kabul ederdim, ama @Anton ilk ;-) – maartenmachiels

2

ne dersiniz:

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]); 
} 

Çıktı:

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

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

+0

Vay, ne garip bir teknik. Bunu daha önce görmedim! – maartenmachiels

1

Kod snippet'ini daha iyi gerçekleştiren bu ES6 Sürümünü deneyin.

İlgili konular