AJAX isteğimde bir JavaScript dizisini JSON değişkeni olarak nasıl gönderebilirim?JSON değeri olarak bir JavaScript dizisi göndermek ister misiniz?
6
A
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
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
kullanıp bir parçası olarak gönderebilirsiniz senin AJAX recuest: çok fazla diğerleri kodlayıcılar veya JQuery ve Mootools için bile eklentileri vardır http://www.openjs.com/scripts/data/json_encode.php
: Bu bir dizeye javascript dizi seri hale getirmek gerektirir D
1
sahip bir örnek:
get.php olarakvar 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ülecektirecho json_encode($_POST['ids']);
{kimlikleri: arr}, nesnenin kendisini ve icar jQuery geçmesi sorgu dizesi biçimlendirmesi yapın.
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
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. –
"[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