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?

Author: Ry-, 2010-02-19

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

 565
Author: JonoW, 2014-03-28 06:55:32

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))
 57
Author: Stancho Stanchev, 2013-01-04 13:35:35
Parece que ficou muito mais fácil hoje em dia... 3 maneiras de o fazer:
json = { ...array };

json = Object.assign({}, array);

json = array.reduce((json, value, key) => { json[key] = value; return json; }, {});
 21
Author: Eduardo Sganzerla, 2016-12-19 03:39:15
Decidi usar a biblioteca json2 e tive um erro sobre "estruturas de dados cíclicas". Resolvi-o dizendo ao json2 como converter o meu objecto complexo. Não só funciona agora, como também incluí apenas os campos de que preciso. Eis como o fiz:
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;
   }
 11
Author: Paulo Pedroso, 2012-06-22 12:42:39

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.

 11
Author: think win win, 2014-09-03 20:23:35

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) );
 0
Author: Pankaj Mandale, 2017-10-16 15:26:29

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); 
 0
Author: Mahmoud ihmaid, 2018-03-02 19:25:50