我有一个var cars = [2,3,..]
包含几个整数的数组。我已经向数组中添加了一些值,但我现在需要通过 jQuery 的.get
方法将此数组发送到页面。如何将其转换为 JSON 对象进行发送?
将数组转换为 JSON
IT技术
javascript
jquery
json
arrays
2021-01-26 20:34:18
6个回答
向后兼容脚本: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))
哇,现在似乎变得更容易了... 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了。这在您的示例中可能不实用,但对我来说效果很好。