Eu tenho uma matriz var cars = [2,3,..]
que contém alguns números inteiros. Adicionei alguns valores à matriz, mas agora preciso enviar essa matriz para uma página via .get
método do jQuery . Como posso convertê-lo em um objeto JSON para envio?
Eu tenho uma matriz var cars = [2,3,..]
que contém alguns números inteiros. Adicionei alguns valores à matriz, mas agora preciso enviar essa matriz para uma página via .get
método do jQuery . Como posso convertê-lo em um objeto JSON para envio?
Respostas:
Script para compatibilidade com versões anteriores: https://github.com/douglascrockford/JSON-js/blob/master/json2.js
E ligue para:
var myJsonString = JSON.stringify(yourArray);
Nota: O objeto JSON agora faz parte dos navegadores mais modernos (IE 8 e superior). Veja caniuse para obter uma lista completa. Crédito vai para: @ Spudley por seu comentário abaixo
JSON
objeto como padrão, o que significa que você não precisa desse script, a menos que esteja planejando oferecer suporte a navegadores mais antigos, como o IE7 ou o Firefox 3.0. Consulte CanIUse para a tabela de suporte.
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 é uma matriz javascript pura) em uma matriz 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; }, {});
jsonString = JSON.stringify({ ...array })
Decidi usar a biblioteca json2 e recebi um erro sobre "estruturas de dados cíclicos".
Eu o resolvi dizendo ao json2 como converter meu objeto complexo. Não só funciona agora, mas também incluí apenas os campos necessários. Aqui está como eu fiz isso:
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 a matriz como um objeto. (var cars = {};) Então não há necessidade de converter para json. Isso pode não ser prático no seu exemplo, mas funcionou bem para mim.
Uma outra maneira poderia ser esta:
var json_arr = {};
json_arr["name1"] = "value1";
json_arr["name2"] = "value2";
json_arr["name3"] = "value3";
var json_string = JSON.stringify(json_arr);
Se você tiver apenas 1 objeto como o que você pediu, o seguinte funcionará.
var x = [{'a':'b'}];
var b= JSON.stringify(x);
var c = b.substring(1,b.length-1);
JSON.parse(c);
A maneira mais curta que sei gerar json válido a partir de uma matriz de números inteiros é
let json = `[${cars}]`
para objeto / matriz mais geral (sem referências circulares ), use JSON.stringify (cars)
porque minha matriz era como abaixo: e usei a função .push para criá-la dinamicamente
my_array = ["234", "23423"];
A única maneira de converter minha matriz em json é
json = Object.assign({}, my_array);