我有一个数组var cars = [2,3,..],其中包含几个整数。 我已经向数组中添加了一些值,但是现在我需要通过jQuery的.get方法将这个数组发送到页面。如何将其转换为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 x = [{'a':'b'}];
var b= JSON.stringify(x);
var c = b.substring(1,b.length-1);
JSON.parse(c);
哇,现在似乎容易多了……3种方法:
json = { ...array };
json = Object.assign({}, array);
json = array.reduce((json, value, key) => { json[key] = value; return json; }, {});
最短的
从整数数组生成有效的json使用
let json = `[${cars}]`
对于更通用的数组,请使用JSON.stringify(cars)(对于带有循环引用的对象使用此方法)
Let cars = [1,2,3];cars.push(4、5、6); Let json = ' [${cars}] '; console.log (json); console.log (JSON.parse (json));// json验证
或者尝试将数组定义为对象。(var cars = {};)那么就不需要转换成json了。这在你的例子中可能不实用,但对我来说很管用。
另一种方式是:
var json_arr = {};
json_arr["name1"] = "value1";
json_arr["name2"] = "value2";
json_arr["name3"] = "value3";
var json_string = JSON.stringify(json_arr);