var cars = [2,3,..]
,其中包含一些整数。我在数组中添加了一些值,但是现在我需要通过jQuery的
.get
方法将此数组发送到页面。如何将其转换为JSON对象进行发送?#1 楼
向后兼容的脚本:https://github.com/douglascrockford/JSON-js/blob/master/json2.js
并调用:
var myJsonString = JSON.stringify(yourArray);
注意:JSON对象现在是大多数现代Web浏览器(IE 8及更高版本)的一部分。有关完整列表,请参见caniuse。感谢:@Spudley在下面的评论
评论
这可行,jQuery有这样的功能吗?如果jQuery已经具有功能,我不希望附加另一个js文件。
–点点
2010-2-19在10:27
jQuery在1.4.1中具有JSON.parse的实现,但没有JSON.stringify ...如果我将json2.js缩小到3k以下,我认为。
– gnarf
2010-2-19在10:36
是的,我很惊讶jQuery也没有内置此功能
– JonoW
2010-2-19在10:41
对于仍在阅读此答案的任何人,值得指出的是,所有现代浏览器都将JSON对象作为标准对象,这意味着除非您计划支持IE7或Firefox 3.0等较旧的浏览器,否则就不需要此脚本。有关支持表,请参见CanIUse。
– Spudley
13年5月26日在21:35
值得指出的是,您可以在浏览器控制台中执行此操作:var a = [paste]; JSON.stringify(a)
–迈克尔·科尔(Michael Cole)
2015年1月15日,下午3:27
#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))
评论
你救了我的命
– MD。沙法雅图·哈克(Shafayatul Haque)
18年6月3日在9:26
#3 楼
哇,如今似乎变得容易多了...您可以通过3种方式做到这一点:json = { ...array };
json = Object.assign({}, array);
json = array.reduce((json, value, key) => { json[key] = value; return json; }, {});
评论
jsonString = JSON.stringify({... array})
–克里希纳扭矩
19年6月6日在20:49
#4 楼
我决定使用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;
}
#5 楼
或者尝试将数组定义为对象。 (var cars = {};),然后就无需转换为json。在您的示例中,这可能不切实际,但对我来说效果很好。#6 楼
另一种方法可能是: var json_arr = {};
json_arr["name1"] = "value1";
json_arr["name2"] = "value2";
json_arr["name3"] = "value3";
var json_string = JSON.stringify(json_arr);
#7 楼
因为我的数组如下所示:,并且我使用.push函数来动态创建它。
my_array = ["234", "23423"];
我将数组转换为json的唯一方法是
json = Object.assign({}, my_array);
#8 楼
如果您只有一个对象(如您所问的那样),则可以使用以下对象。var x = [{'a':'b'}];
var b= JSON.stringify(x);
var c = b.substring(1,b.length-1);
JSON.parse(c);
#9 楼
我知道从整数数组生成有效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 validation
评论
只是仔细检查:您要发送到页面的数组是JavaScript数组还是在服务器上?这是一个Javascript数组,我将其发送到Python脚本,Python将使用JSON字符串并对其进行处理。