Converter a lista para JSON
tenho um Array (var cars = []
) que contém alguns inteiros.
Adicionei alguns valores ao array, mas agora preciso enviar este array para uma página através do método jQuery .get
. Como posso convertê-lo em um objeto JSON para enviar?
7 answers
Programa para compatibilidade retroactiva: https://github.com/douglascrockford/JSON-js/blob/master/json2.js
E ligar:
var myJsonString = JSON.stringify(yourArray);
Nota: O objeto JSON é agora parte da maioria dos navegadores web modernos (IE 8 & acima). Ver caniuse para a lista completa. Crédito vai para @Spudley para o seu comentário abaixo
Eu fiz assim:
Se tiver:
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);
Para converter pluginArrayArg (que é um array javascript puro) em array JSON:
var jsonArray = JSON.parse(JSON.stringify(pluginArrayArg))
json = { ...array };
json = Object.assign({}, array);
json = array.reduce((json, value, key) => { json[key] = value; return json; }, {});
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;
}
Ou tentar definir o array como um objecto. (var cars = {};) então não há necessidade de converter para json. Isto pode não ser prático no seu exemplo, mas funcionou bem para mim.
Em JavaScript, pode usar JSON.stringify para converter uma matriz ou valores em uma cadeia formatada JSON.
var output = {}
output[0] = "a";
output[1] = "b";
output[2] = "c";
console.log( JSON.stringify(output) );
Se você tem apenas um objeto como o que você pediu, o seguinte vai funcionar.
var x = [{'a':'b'}];
var b= JSON.stringify(x);
var c = b.substring(1,b.length-1);
JSON.parse(c);