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

如何在JSON对象的末尾新增数据且不覆盖原有内容

JSON对象追加数据操作指南

核心逻辑

JSON是结构化文本格式,不能直接通过文本末尾追加的方式添加内容,否则会破坏JSON结构。正确流程是:读取文件 → 解析为内存中的对象结构 → 追加对应字段 → 序列化后写回原文件,该操作不会修改/删除原有任何数据。

场景1:手动编辑JSON文件

如果只是少量手动修改,直接按JSON语法在目标对象的最后一个原有键值对后追加即可,以你给出的示例为例,要给something对象新增字段的话,修改后结构如下:

{
  "something" : {
    "idk" : "yeah something",
    "newKey": "你要新增的内容",
    "anotherKey": "可以加任意多合法键值对"
  }
}

注意事项:

  • 原有最后一个键值对的末尾要加英文逗号
  • 你新增的最后一个键值对末尾不能加英文逗号
  • 所有符号都必须是英文半角符号

场景2:代码批量操作

Python实现

import json

# 1. 读取并解析原有JSON文件
with open("demo.json", "r", encoding="utf-8") as f:
    json_data = json.load(f)

# 2. 给目标对象追加字段,支持单次加单个或批量加
# 单个追加
json_data["something"]["newKey"] = "newValue"
# 批量追加
json_data["something"].update({
    "key1": "value1",
    "key2": 123,
    "key3": [1,2,3]
})

# 3. 序列化后写回原文件
with open("demo.json", "w", encoding="utf-8") as f:
    # indent=2 保持格式化输出,ensure_ascii=False 避免中文乱码
    json.dump(json_data, f, indent=2, ensure_ascii=False)

Node.js实现

const fs = require('fs')

// 1. 读取并解析原有JSON文件
const jsonData = JSON.parse(fs.readFileSync('demo.json', 'utf-8'))

// 2. 追加字段
// 单个追加
jsonData.something.newKey = 'newValue'
// 批量追加
Object.assign(jsonData.something, {
    key1: 'value1',
    key2: 123,
    key3: [1,2,3]
})

// 3. 写回原文件
fs.writeFileSync('demo.json', JSON.stringify(jsonData, null, 2), 'utf-8')

⚠️ 注意:不要直接用文本IO的append模式往JSON文件末尾写内容,会生成非法JSON结构,无法被正常解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:27:00