将数组转换为JSON
我有一个数组( var cars = []
),它包含几个整数。 我已经给数组添加了一些值,但是现在我需要通过jQuery的.get
方法将这个数组发送到页面。 我怎样才能将其转换为JSON对象发送?
向后兼容脚本: https : //github.com/douglascrockford/JSON-js/blob/master/json2.js
并致电:
var myJsonString = JSON.stringify(yourArray);
注: JSON对象现在是大多数现代Web浏览器(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))
或者尝试将数组定义为对象。 (var cars = {};)然后没有必要转换成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; }
哇,现在看起来好多了… 3种方法可以做到:
json = { ...array }; json = Object.assign({}, array); json = array.reduce((json, value, key) => { json[key] = value; return json; }, {});
在JavaScript中,您可以使用JSON.stringify将数组或值转换为JSON格式的string。
var output = {} output[0] = "a"; output[1] = "b"; output[2] = "c"; console.log( JSON.stringify(output) );