You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中将数组转换为指定结构的JSON对象?

问题:二维数组转指定结构JSON对象

原始二维数组:

const data = [
    ["Lisa", "Heinz", "1993-04-15" ],
    ["Bob", "Dylan", "1998-09-12"],
    ["Cabbage", "Man", "1990-01-11"],
    ["", "", ""]
];

目标JSON结构:

{
  "person": [
    {"name":"Lisa","last_name":"Heinz","dob":"1993-04-15"},
    {"name":"Bob","last_name":"Dylan","dob":"1998-09-12"},
    {"name":"Cabbage","last_name":"Man","dob":"1990-01-11"},
    {"name":"","last_name":"","dob":""}
  ],
  "object_id":259,
  "test":"bob",
  "attribute":"bob123"
}

当前代码的问题是把每个person处理成了对象的独立属性(person0、person1这类),但目标结构里person是一个数组,需要装下所有人员对象。下面是两种易懂的实现方式:

方式一:使用map方法(简洁高效)

const data = [
    ["Lisa", "Heinz", "1993-04-15" ],
    ["Bob", "Dylan", "1998-09-12"],
    ["Cabbage", "Man", "1990-01-11"],
    ["", "", ""]
];

// 先构建固定属性部分
const result = {
    object_id: 259,
    test: "bob",
    attribute: "bob123"
};

// 用map遍历数组,把每个子数组转成person对象,直接生成数组
result.person = data.map(item => ({
    name: item[0],
    last_name: item[1],
    dob: item[2]
}));

// 转成JSON字符串(发送API时用)
const jsonResult = JSON.stringify(result);
console.log(jsonResult);

方式二:使用普通for循环(直观易懂)

const data = [
    ["Lisa", "Heinz", "1993-04-15" ],
    ["Bob", "Dylan", "1998-09-12"],
    ["Cabbage", "Man", "1990-01-11"],
    ["", "", ""]
];

// 初始化结果对象,提前创建person空数组
const result = {
    object_id: 259,
    test: "bob",
    attribute: "bob123",
    person: []
};

// 遍历二维数组,逐个把人员信息转成对象push到person数组里
for (let i = 0; i < data.length; i++) {
    const personInfo = data[i];
    result.person.push({
        name: personInfo[0],
        last_name: personInfo[1],
        dob: personInfo[2]
    });
}

const jsonResult = JSON.stringify(result);
console.log(jsonResult);

两种方式核心逻辑一致:把所有person对象收集到一个数组中,再赋值给result.person属性,就能匹配目标结构。

内容的提问来源于stack exchange,提问作者Tim Dobson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 13:05:30