Qt中是否有可编辑JSON文件的相关函数?
修改JSON文件指定字段值的实现方法
完全可以通过JSON结构化解析的方式实现,比纯文本查找替换更安全,不会破坏JSON结构或者误改其他内容,常见的实现方法如下:
方法1:Python实现(跨平台通用)
Python内置JSON处理模块,无需额外安装依赖,代码示例如下:
import json # 替换为你的JSON文件实际路径 file_path = "example.json" # 读取并解析JSON文件为字典对象 with open(file_path, "r", encoding="utf-8") as f: json_data = json.load(f) # 修改指定字段的值 json_data["Value"] = 12 # 将修改后的内容序列化后写回原文件 with open(file_path, "w", encoding="utf-8") as f: # indent=4 保持格式化缩进,ensure_ascii=False 避免中文乱码 json.dump(json_data, f, indent=4, ensure_ascii=False)
方法2:jq命令行实现(适合Linux/macOS/WSL环境)
jq是专门处理JSON的轻量命令行工具,一行命令即可完成修改:
# 先安装jq(如已安装可跳过) # Debian/Ubuntu: apt install jq # macOS: brew install jq jq '.Value = 12' example.json > temp.json && mv temp.json example.json
方法3:Node.js实现
const fs = require("fs"); const filePath = "example.json"; // 读取解析JSON const jsonData = JSON.parse(fs.readFileSync(filePath, "utf-8")); // 修改字段 jsonData.Value = 12; // 写回文件 fs.writeFileSync(filePath, JSON.stringify(jsonData, null, 4), "utf-8");
注意事项
- 操作前建议先备份原JSON文件,避免操作失误导致内容丢失
- 如果
Value字段是嵌套结构,比如{"info": {"Value": 39}},修改时对应补全层级路径即可(比如Python里写json_data["info"]["Value"] = 12) - 不要直接用纯文本的全局查找替换,很容易误改其他位置的同名字段,JSON解析的方式会严格按照结构修改,准确率更高
内容的提问来源于stack exchange,提问作者Comics Mania
相关产品推荐
相关产品推荐

