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

JavaScript如何修改JSON对象属性名并赋值给本地对象?

JavaScript加载JSON并修改对象属性名实现方案

该操作完全可行,原生JavaScript无需引入第三方库即可实现。JavaScript没有提供直接重命名对象属性的内置API,核心实现逻辑分为两步:先读取解析JSON文件存入变量,再遍历数据按照字段映射规则生成新结构对象(或给对象添加新属性后删除旧属性)。

具体实现步骤

  • 定义字段映射规则
    你需要的字段对应关系如下:
    • 原字段_id → 新字段person_id
    • 原字段index → 新字段idx
    • 原字段tags → 新字段voiceLines
  • 读取JSON文件并完成字段转换
    推荐使用Array.map遍历原始数据直接生成符合字段要求的新对象,这种写法不会修改原始数据,能避免遍历过程中原对象被改动引发的异常。

浏览器环境代码示例

// 提前声明目标变量
let localobj;

// 读取本地JSON文件并做转换
fetch('/你的JSON文件存放路径.json')
  .then(response => response.json())
  .then(rawData => {
    // 遍历原始数组完成字段映射
    localobj = rawData.map(item => {
      return {
        person_id: item._id,
        idx: item.index,
        voiceLines: item.tags
      }
    })
    // 此处即可使用转换完成的localobj
    console.log('数据转换完成', localobj);
  })

Node.js环境代码示例

const fs = require('fs/promises');
let localobj;

async function loadData() {
  // 读取本地JSON文件
  const fileContent = await fs.readFile('./你的JSON文件存放路径.json', 'utf-8');
  const rawData = JSON.parse(fileContent);
  // 完成字段转换
  localobj = rawData.map(item => ({
    person_id: item._id,
    idx: item.index,
    voiceLines: item.tags
  }))
}

loadData();

原地修改已加载数据的写法

如果你已经把原始JSON数据解析后存入了localobj,可以直接遍历数组原地修改属性:

localobj = localobj.map(item => {
  // 挂载新属性
  item.person_id = item._id;
  item.idx = item.index;
  item.voiceLines = item.tags;
  // 删除旧属性
  delete item._id;
  delete item.index;
  delete item.tags;
  return item;
})

注意:如果原JSON数据里存在其他未在映射规则里的字段,上述写法会保留这些字段;如果只需要保留三个映射后的字段,用前面生成新对象的写法即可自动过滤多余字段。

内容的提问来源于stack exchange,提问作者Metgher Andrei

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:27:16