如何在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
相关产品推荐
相关产品推荐

