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

其他回答

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

和电话:

var myJsonString = JSON.stringify(yourArray);

注意:JSON对象现在是大多数现代web浏览器(IE 8及以上)的一部分。参见caniuse获取完整列表。感谢@Spudley在下面的评论

您可以使用Object将数组转换为JSON。分配功能。我遇到的主要问题是Javascript数组有一个从零开始的整数键,这反过来允许访问数组中的数据。

let fruits = ['Apple', 'Banana']
document.write(fruits[0])

返回:

苹果

当您将数组转换为JSON时,您将得到

{"0": "Apple", "1: "Banana"}

相反,JSON对象通常包含任意键,例如:

{ "some_key": "一些值", "other_key: "其他值" }

幸运的是,您可以创建一个项目列表,它的工作原理与数组差不多,然后使用Object。就像它是一个数组一样赋值,然后将输出转换为JSON对象

var items = {};
items["some_key"]="some value";
items["other_key"]="some other value";
const jsonString = JSON.stringify(Object.assign({}, items)) 
const json_obj = JSON.parse(jsonString);

使用项目列表的好处是,你不必将JSON数据作为字符串或引号、逗号等来处理……相反,您可以只管理项目对象填充数据或删除数据。完成后,只需将项目变量转换为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);
    }
    

最短的

从整数数组生成有效的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验证

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