gpt4 book ai didi

javascript - 从 Javascript 数组创建 JSON 对象

转载 作者:行者123 更新时间:2023-11-30 08:43:25 25 4
gpt4 key购买 nike

因此,对于每个选中的复选框,我都获得了关联的 ID,并根据那里的值推导出节点值,这工作正常。我面临的问题是使用所有复选框的值创建一个合适的 javascript 对象。

这是函数,

function finlizeJParams()
{
var jsonOutput=[];
var array = $("input[type='checkbox']:checked").map(function(){

var str=this.id;

var data=[];
var objID=str.substring(str.lastIndexOf("c_")+2,str.lastIndexOf("_n_"));
var objName=str.substring(str.lastIndexOf("_n_")+3,str.lastIndexOf("_p_"));
var objParentID=str.substring(str.lastIndexOf("_p_")+3,str.lastIndexOf("_pn_"));
var objParentName=str.substring(str.lastIndexOf("_pn_")+4);

data['ItemID']=objID;
data['ItemName']=objName;
data['ItemParentID']=objParentID;
data['ItemParentName']=objParentName;
jsonOutput.push(data)

return jsonOutput;
}).get()

JSON.stringify(array);
}

这似乎有效,因为当我尝试在控制台上打印它时得到数组,见下文

0: Array[0]
ItemParentName: "Fruit"
ItemParentID: "7"
ItemID: "8"
ItemName: "Apple"
1: Array[0]
ItemParentName: "Fruit"
ItemParentID: "7"
ItemID: "9"
ItemName: "Orange"

但是,如果我执行 JSON.stringify(jsonOutput),我会得到空数组 [[],[]]?我究竟做错了什么?另外,如何按 parentID/Name 对这些数组进行分组,然后将其转换为 JSON 对象?

最佳答案

您将数组视为普通对象。

虽然数组继承自对象,但它们专为数字索引、顺序数据而设计,并且当您通过 JSON.stringify 传递它们时,只会包含具有数值的属性。

如果您想使用命名键,请使用对象 ({}),而不是数组 ([])。

var data={};

关于javascript - 从 Javascript 数组创建 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24098001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com