Converter matriz para JSON

Eu tenho uma matriz ( var cars = [] ) que contém alguns inteiros. Eu adicionei alguns valores ao array, mas agora preciso enviar este array para uma página através do método .get do jQuery. Como posso convertê-lo em um object JSON para envio?

Script para compatibilidade com versões anteriores: https://github.com/douglascrockford/JSON-js/blob/master/json2.js

E ligue:

 var myJsonString = JSON.stringify(yourArray); 

Nota: O object JSON agora faz parte dos navegadores da Web mais modernos (IE 8 e acima). Veja caniuse para lista completa. O crédito vai para: @Spudley por seu comentário abaixo

Eu fiz assim:

se eu 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 é puro array javascript) em array JSON:

 var jsonArray = JSON.parse(JSON.stringify(pluginArrayArg)) 

Uau, parece que ficou muito mais fácil hoje em dia … 3 maneiras de fazer isso:

 json = { ...array }; json = Object.assign({}, array); json = array.reduce((json, value, key) => { json[key] = value; return json; }, {}); 

Eu decidi usar a biblioteca json2 e recebi um erro sobre “estruturas de dados cíclicos”.

Eu consegui resolver isso dizendo ao json2 como converter meu object complexo. Não só funciona agora, mas também incluí apenas os campos que preciso. Aqui está como eu 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; } 

Ou tente definir o array como um object. (var cars = {};) Então não há necessidade de converter para json. Isso pode não ser prático em seu exemplo, mas funcionou bem para mim.

Em JavaScript, você pode usar JSON.stringify para converter uma matriz ou valores em uma string formatada em JSON.

 var output = {} output[0] = "a"; output[1] = "b"; output[2] = "c"; console.log( JSON.stringify(output) ); 

Se você tiver apenas 1 object como o que você pediu, o seguinte irá funcionar.

 var x = [{'a':'b'}]; var b= JSON.stringify(x); var c = b.substring(1,b.length-1); JSON.parse(c);