将数组转换为JSON

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

请再确认一下:您要发送到页面的数组是 JavaScript 数组还是在服务器上? - Ian Oxley
这是一个Javascript数组,我将把它发送到Python脚本,Python将使用JSON字符串并处理它。 - dotty
https://dev59.com/2nE95IYBdhLWcg3wd9xK#71512964 - mehmet
12个回答

2
您可以使用Object.assign函数将数组转换为JSON。我遇到的主要问题是Javascript数组具有基于零的整数键,这反过来允许访问数组中的数据。
let fruits = ['Apple', 'Banana']
document.write(fruits[0])

返回:

苹果

当你将该数组转化为JSON时,你会得到

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

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

{ "some_key": "some value", "other_key: "some other value" }

幸运的是,您可以创建一个项目列表,它几乎像一个数组一样工作,然后使用Object.assign,就像它是一个数组一样,然后将输出转换为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对象,并进行所需的操作即可。

0

使用您的汽车数组: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);
    }
    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接