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

如何原地修改JSON对象一级键,为其添加外层转义引号?

问题原因与解决方法

原代码问题分析

你在forEach循环中对循环变量k重新赋值,仅修改了该临时字符串副本的取值,完全没有改动原对象的键结构。JavaScript对象的键不支持直接重命名,必须通过「新增目标格式的新键、挂载原有值、删除旧键」的流程完成更新。

实现代码

const j = '{"a": "b", "c": "d"}';
let obj = JSON.parse(j);

// 一次性拿到所有原始一级键,避免遍历过程中新增的键干扰循环
Object.keys(obj).forEach(oldKey => {
  // 生成带外层引号的新键,序列化后会自动转义为预期的格式
  const newKey = `"${oldKey}"`;
  // 给新键挂载原有值
  obj[newKey] = obj[oldKey];
  // 删除旧键
  delete obj[oldKey];
});

console.log(JSON.stringify(obj, null, 2));

运行输出

{
  "\"a\"": "b",
  "\"c\"": "d"
}

注意事项

  • 如果原对象本身已经存在和新键同名的键,原有同名键的值会被覆盖,处理前可先做存在性判断
  • 该方法仅修改一级键,嵌套对象的键不会被处理,如果需要处理嵌套键可以递归实现

内容的提问来源于stack exchange,提问作者Sandra Schlichting

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 20:24:03