javascript - array - json stringify mdn




Converter matriz para JSON (5)

Eu decidi usar a biblioteca json2 e recebi um erro sobre "estruturas de dados cíclicas".

Eu consegui resolver isso dizendo ao json2 como converter meu objeto 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;
   }

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 objeto JSON para envio?


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) na matriz JSON:

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

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 objeto JSON agora faz parte da maioria dos navegadores modernos (IE 8 e acima). Veja caniuse para listagem completa. O crédito vai para: @Spudley por seu comentário abaixo


Se você tiver apenas 1 objeto 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); 

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);




arrays