Ben bir Array var var cars = [2,3,..]
birkaç tamsayılar tutar. Diziye birkaç değer ekledim, ancak şimdi bu diziyi jQuery'nin .get
yöntemi aracılığıyla bir sayfaya göndermem gerekiyor . Bunu göndermek için nasıl JSON nesnesine dönüştürebilirim?
Ben bir Array var var cars = [2,3,..]
birkaç tamsayılar tutar. Diziye birkaç değer ekledim, ancak şimdi bu diziyi jQuery'nin .get
yöntemi aracılığıyla bir sayfaya göndermem gerekiyor . Bunu göndermek için nasıl JSON nesnesine dönüştürebilirim?
Yanıtlar:
Geriye dönük uyumluluk için komut dosyası: https://github.com/douglascrockford/JSON-js/blob/master/json2.js
Ve Çağrı yap:
var myJsonString = JSON.stringify(yourArray);
Not: JSON nesnesi artık çoğu modern web tarayıcısının (IE 8 ve üstü) bir parçasıdır. Bkz caniuse tam liste için. Kredi şu şekilde: @Spudley aşağıdaki yorumu için
Bu şekilde yaptım:
sahip olursam:
var jsonArg1 = new Object();
jsonArg1.name = 'calc this';
jsonArg1.value = 3.1415;
var jsonArg2 = new Object();
jsonArg2.name = 'calc this again';
jsonArg2.value = 2.73;
var pluginArrayArg = new Array();
pluginArrayArg.push(jsonArg1);
pluginArrayArg.push(jsonArg2);
pluginArrayArg (saf javascript dizisi olan) JSON dizisine dönüştürmek için:
var jsonArray = JSON.parse(JSON.stringify(pluginArrayArg))
Vay be, bugünlerde çok daha kolay görünüyor ... Bunu yapmanın 3 yolu:
json = { ...array };
json = Object.assign({}, array);
json = array.reduce((json, value, key) => { json[key] = value; return json; }, {});
jsonString = JSON.stringify({ ...array })
Json2 kütüphanesini kullanmaya karar verdim ve “döngüsel veri yapıları” hakkında bir hata aldım.
Json2'ye karmaşık nesnesimi nasıl dönüştüreceğimizi söyleyerek çözdüm. Sadece şimdi değil, aynı zamanda sadece ihtiyacım olan alanları da ekledim. İşte nasıl yaptım:
OBJ.prototype.toJSON = function (key) {
var returnObj = new Object();
returnObj.devid = this.devid;
returnObj.name = this.name;
returnObj.speed = this.speed;
returnObj.status = this.status;
return returnObj;
}
Veya diziyi bir nesne olarak tanımlamayı deneyin. (var cars = {};) O zaman json'a dönüştürmeye gerek yoktur. Bu, örneğinizde pratik olmayabilir, ancak benim için iyi çalıştı.
Başka bir yol şu olabilir:
var json_arr = {};
json_arr["name1"] = "value1";
json_arr["name2"] = "value2";
json_arr["name3"] = "value3";
var json_string = JSON.stringify(json_arr);
İstediğiniz gibi yalnızca 1 nesneniz varsa, aşağıdakiler işe yarayacaktır.
var x = [{'a':'b'}];
var b= JSON.stringify(x);
var c = b.substring(1,b.length-1);
JSON.parse(c);
Tamsayı dizisinden geçerli json oluşturmayı bildiğim en kısa yol
let json = `[${cars}]`
daha genel nesne / dizi için ( dairesel referanslar olmadan ) JSON.stringify (cars) kullanın
çünkü dizim aşağıdaki gibiydi: ve dinamik olarak oluşturmak için .push işlevini kullandım
my_array = ["234", "23423"];
Dizimi json'a dönüştürmenin tek yolu
json = Object.assign({}, my_array);