将数组转换为 JSON

IT技术 javascript jquery json arrays
2021-01-26 20:34:18

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

6个回答

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

并调用:

var myJsonString = JSON.stringify(yourArray);

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

是的,我很惊讶 jQuery 也没有内置这个
2021-03-10 20:34:18
这行得通,jQuery 有这样的功能吗?如果 jQuery 已经有一个函数,我不想附加另一个 js 文件。
2021-03-17 20:34:18
jQuery 在 1.4.1 中有 JSON.parse 的实现,但没有 JSON.stringify ......如果你将 json2.js 缩小,我认为它 <3k。
2021-03-19 20:34:18
对于仍在阅读此答案的任何人,值得指出的是,所有现代浏览器都将JSON对象作为标准包含在内,这意味着除非您计划支持 IE7 或 Firefox 3.0 等较旧的浏览器,否则您不需要此脚本有关支持图表,请参阅CanIUse
2021-03-20 20:34:18
值得指出的是,您可以在浏览器控制台中执行此操作: var a = [paste]; JSON.stringify(a)
2021-04-05 20:34:18

我是这样做的:

如果我有:

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))
你救了我的命
2021-04-03 20:34:18

哇,现在似乎变得更容易了... 3 种方法可以做到:

json = { ...array };

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

json = array.reduce((json, value, key) => { json[key] = value; return json; }, {});
jsonString = JSON.stringify({ ...array })
2021-03-19 20:34:18

我决定使用 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了。这在您的示例中可能不实用,但对我来说效果很好。