将数组转换为JSON

谁说胖子不能爱 提交于 2020-02-26 07:41:14

我有一个数组var cars = [2,3,..] ,其中包含一些整数。 我已经向数组添加了一些值,但是现在我需要通过jQuery的.get方法将此数组发送到页面。 如何将其转换为JSON对象进行发送?


#1楼

我决定使用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;
   }

#2楼

我做到了:

如果我有:

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楼

或者尝试将数组定义为对象。 (var cars = {};)。那么就无需转换为json。 在您的示例中,这可能不切实际,但对我来说效果很好。


#4楼

向后兼容的脚本: https : //github.com/douglascrockford/JSON-js/blob/master/json2.js

并致电:

var myJsonString = JSON.stringify(yourArray);

注意: JSON对象现在是大多数现代Web浏览器(IE 8及更高版本)的一部分。 有关完整列表,请参见caniuse 感谢:@Spudley在下面的评论


#5楼

哇,如今似乎变得容易多了... 3种方法可以做到:

json = { ...array };

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

json = array.reduce((json, value, key) => { json[key] = value; return json; }, {});
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!