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


当前回答

答案在2022年

我认为这是最好最干净的答案。

使用Json .stringify(),我们将JavaScript数组转换为Json字符串。使用Json .parse(),我们将Json字符串转换为Json对象。

var JsonObject, jsArray; // JS数组 jsArray = ["one", "two", "three"]; //将(js数组)转换为(json对象) JsonObject = JSON.parse(JSON.stringify(jsArray)); / /类型 console.log("Json类型是:" + typeof(JsonObject)); / / JsonObject console.log(“Json值是:”+ JsonObject);

其他回答

哇,现在似乎容易多了……3种方法:

json = { ...array };

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

json = array.reduce((json, value, key) => { json[key] = value; return json; }, {});

或者尝试将数组定义为对象。(var cars = {};)那么就不需要转换成json了。这在你的例子中可能不实用,但对我来说很管用。

用你的汽车数组:var cars =[2,3,..]。你可以像这样使用for循环

    var carArray = new Array();  

    for(var c in cars) {
      var jsonObj = new Object();
      jsonObj.car_id = cars[c];
      carArray.push(jsonObj);
    }
    

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

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

我把数组转换成json的唯一方法是

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

我是这样做的:

如果我有:

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))