我有一个数组
var cars = [2,3,..]
包含一些整数。我已经向该数组添加了一些值,但是现在我需要通过jQuery的.get
方法将此数组发送到页面。我应该如何将它转换为JSON对象以便发送?var cars = [2,3,..]
包含一些整数。我已经向该数组添加了一些值,但是现在我需要通过jQuery的.get
方法将此数组发送到页面。我应该如何将它转换为JSON对象以便发送?用于向后兼容的脚本: https://github.com/douglascrockford/JSON-js/blob/master/json2.js
然后调用:
var myJsonString = JSON.stringify(yourArray);
注意:JSON对象现在已成为大多数现代Web浏览器(IE 8及以上版本)的一部分。请参见caniuse以获取完整列表。特别感谢@Spudley在下面的评论中提供的信息。
JSON
对象作为标准,这意味着除非你打算支持旧版本的浏览器如IE7或Firefox 3.0,否则你不需要这个脚本。请参见CanIUse获取支持情况表。 - Spudleyvar 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);
将纯 JavaScript 数组 pluginArrayArg 转换为 JSON 数组:
var jsonArray = JSON.parse(JSON.stringify(pluginArrayArg))
哇,现在看起来变得更容易了... 你可以用以下三种方式之一:
json = { ...array };
json = Object.assign({}, array);
json = array.reduce((json, value, key) => { json[key] = value; return json; }, {});
jsonString = JSON.stringify({ ...array })
- Krishna Torque如果你想要json 字符串
var JsonString = JSON.stringify(JsArray);
var JsonObject = JSON.parse(JSON.stringify(JsArray));
JSON.stringify()
,我们将JavaScript数组转换为Json字符串。然后使用JSON.parse()
,我们将Json字符串转换为Json对象。另一种方法可能是这样:
var json_arr = {};
json_arr["name1"] = "value1";
json_arr["name2"] = "value2";
json_arr["name3"] = "value3";
var json_string = JSON.stringify(json_arr);
json_arr
不是一个数组,而是一个对象。 - David我决定使用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了。这在您的示例中可能不实用,但对我很有效。
my_array = ["234", "23423"];
我将数组转换为json的唯一方法是:
json = Object.assign({}, my_array);
要从整数数组生成有效的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
var x = [{'a':'b'}];
var b= JSON.stringify(x);
var c = b.substring(1,b.length-1);
JSON.parse(c);