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