将数组转换为JSON

2020/09/29 14:41 · javascript ·  · 0评论

我有一个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在下面的评论

我做到了:

如果我有:

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种方法可以做到:

json = { ...array };

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

json = array.reduce((json, value, key) => { json[key] = value; return 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 cars = {};),然后就无需转换为json。在您的示例中,这可能不切实际,但对我来说效果很好。

另一种方法可能是这样的:

        var json_arr = {};
        json_arr["name1"] = "value1";
        json_arr["name2"] = "value2";
        json_arr["name3"] = "value3";

        var json_string = JSON.stringify(json_arr);

如果您只有1个对象(如您所问的那样),那么以下方法将起作用。

var x = [{'a':'b'}];
var b= JSON.stringify(x);
var c = b.substring(1,b.length-1);
JSON.parse(c); 

因为我的数组如下所示:并且我使用了.push函数来动态创建它

my_array = ["234", "23423"];

我将数组转换为json的唯一方法是

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

我知道从整数数组生成有效json的最短方法是

let json = `[${cars}]`

对于更通用的对象/数组,请使用JSON.stringify(cars)(对于具有循环引用的对象,请使用this

本文地址:http://javascript.askforanswer.com/jiangshuzuzhuanhuanweijson.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!