将数组转换为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) );