Преобразование массива в JSON



у меня есть массив (var cars = []), который содержит несколько целых чисел.
Я добавил несколько значений в массив, но теперь мне нужно отправить этот массив на страницу через jQuery .get метод. Как я могу преобразовать его в объект JSON для отправки?

841   7  

7 ответов:

скрипт для обратной совместимости: https://github.com/douglascrockford/JSON-js/blob/master/json2.js

и звонок:

var myJsonString = JSON.stringify(yourArray);

Примечание:объект JSON является частью большинства современных веб-браузеров (IE 8 и выше). Смотрите caniuse для полного списка. Кредит идет к: @Spudley для его комментария ниже

Я сделал это таким образом:

Если у меня есть:

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

чтобы преобразовать pluginArrayArg (который является чистым массивом javascript) в массив JSON:

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

Вау, кажется, это стало намного проще в наше время... 3 способа, которыми вы можете это сделать:

json = { ...array };

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

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

Я решил использовать библиотеку json2 и получил ошибку о "циклических структурах данных".

Я решил это, рассказав json2, как преобразовать мой сложный объект. Не только это работает сейчас, но и я включил только те поля, которые мне нужны. Вот как я это сделал:

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

или попробуйте определить массив как объект. (var cars = {};) тогда нет необходимости конвертировать в json. Это может быть непрактично в вашем примере, но хорошо сработало для меня.

в JavaScript, вы можете использовать JSON.преобразовать в строки для преобразования массива или значений в строку в формате JSON.

var output = {}
output[0] = "a";
output[1] = "b";
output[2] = "c";

console.log( JSON.stringify(output) );

Если у вас есть только 1 объект, как тот, который вы просили, следующие будут работать.

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

Comments

    Ничего не найдено.