2010-05-11 29 views

cevap

14

, somethi JSON nesnesi kullanılarak kolayca yapılabilir. JSON nesnesi olarak

var myArray = [1, 2, 3]; 
var myJson = JSON.stringify(myArray); // "[1,2,3]" 
.... 
xhr.send({ 
    data:{ 
     param: myJson 
    } 
}); 

Douglas Crockfords json2 içermelidir eski tarayıcılarda bulunmaz kütüphane

Zaten o zaman onun yerine bunu kullanabilirsiniz seri kodlama için yöntemler/içeren bazı kütüphaneye faydalanıyorsanız

. Örneğin. ExtJs İşte Ext.encode

+0

Yani hepsi bir dizge oluşturuyor: "[1,2,3]" ... Ama eğer [] ile başlayan ve biten bir dize göndermek istersem, sunucu tarafını anlatabilir fark? – thedp

+0

JSON demedin mi? Bu, tanım başına sadece bir dizgenin içeriğinin formatıdır. Aslında sunucuya bir _array_ göndermek istediyseniz, o zaman bu farklı bir sorudur. Ancak, dizideki öğelerden biri [veya] içeriyorsa, serileştirme yöntemiyle otomatik olarak çıkacaklarını söylemiştim. –

+0

"[1,2,3]" dizesini ajax/json kullanarak sunucuya göndererek sabit bir örnek denedim. Ama aldığım değeri $ val [0] ile kontrol ettiğimde bana: "[". Kullanmadan önce sunucu tarafında json dizisini işlemek zorunda mıyım? – thedp

1

sizin için yapacak bir javascript kütüphanesi (jQuery, prototype.js, vs) kullanmıyorsanız, her zaman sadece dizi kodlamak example code from json.org

1

sahip bir örnek:

get.php olarak
var arr = [1, 2, 3]; 
$.ajax({ 
     url: "get.php", 
     type: "POST", 
     data: {ids:arr}, 
     dataType: "json", 
     async: false, 
     success: function(data){ 
      alert(data); 
     } 
    }); 

:

Dizi kullanarak nesne dönüştürülecektir
echo json_encode($_POST['ids']); 

{kimlikleri: arr}, nesnenin kendisini ve icar jQuery geçmesi sorgu dizesi biçimlendirmesi yapın.

İlgili konular