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

Linux下如何修改JSON文件键值并添加新键值对?

嘿,刚好我对Linux下处理JSON的操作很熟,这就帮你搞定需求!

首先得提个小细节:你的原始JSON有两处语法问题,得先修正才能用工具正常处理——Actionchecked里的"savecheck" : true,末尾多了个逗号(JSON里最后一个键值对不能带逗号),而且JSON不支持//注释,所以User里的注释要删掉。修正后的有效JSON应该是这样:

{ 
  "Name" : "username", 
  "Actionchecked" : { 
    "Enablecheck" : true, 
    "savecheck" : true 
  }, 
  "User" : {} 
}

接下来,咱们用jq这个专门处理JSON的工具来完成修改,这是Linux下处理JSON的首选,比sed/awk靠谱多了,完全不用担心破坏JSON结构。

1. 先安装jq(如果还没装)

根据你的Linux发行版选对应的命令:

  • Debian/Ubuntu系列:
    sudo apt update && sudo apt install jq
    
  • RHEL/CentOS系列:
    sudo yum install jq
    
  • Fedora:
    sudo dnf install jq
    

2. 执行修改命令

假设你的原始文件叫input.json,推荐先输出到新文件验证效果,没问题再替换原文件:

只添加顶级的Authentication键值对

jq '.Authentication = {"foo": true, "poo": false}' input.json > output.json

同时添加Authentication和User里的newuser

如果你说的newuser是要加到User对象里(比如设置值为"newpass"),可以合并成一条命令:

jq '.Authentication = {"foo": true, "poo": false} | .User.newuser = "newpass"' input.json > output.json

直接修改原文件(谨慎操作)

要是确认修改逻辑没问题,想直接覆盖原文件,用-i参数(原地编辑)就行:

jq -i '.Authentication = {"foo": true, "poo": false} | .User.newuser = "newpass"' input.json

简单解释下命令

  • .Authentication = {...}:给JSON的顶级对象添加Authentication键,值就是你要的那个包含foo和poo的对象
  • |:管道符,把前一步的处理结果传给后一步继续操作
  • .User.newuser = "newpass":在User对象里新增newuser键值对,你可以把"newpass"改成任何你需要的值

这样处理完,你的JSON就完全符合预期结构啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:15:50