小编Bob*_*onk的帖子

更改与条件匹配的 JSON 列表中的条目而不丢弃文档的其余部分

我正在尝试打开一个文件,查看该文件并根据该值更改一个值并将其传递给一个文件或 var。以下是 JSON 的示例

{
     "Par": [
         {
             "Key": "12345L",
             "Value": "https://100.100.100.100:100",
             "UseLastValue": true
         },
         {
             "Key": "12345S",
             "Value": "VAL2CHANGE",
             "UseLastValue": true
         },
         {
             "Key": "12345T",
             "Value": "HAPPY-HELLO",
             "UseLastValue": true
         }
     ],
      "CANCOPY": false,
      "LOGFILE": ["HELPLOG"]
 }
Run Code Online (Sandbox Code Playgroud)

我一直在使用 jq 并且我已经成功地隔离了对象组并更改了值。

 cat jsonfile,json | jq '.Par | map(select(.Value=="VAL2CHANGE")) | .[] | .Value="VALHASBEENCHANGED"'
Run Code Online (Sandbox Code Playgroud)

这给

         {
             "Key": "12345S",
             "Value": "VALHASBEENCHANGED",
             "UseLastValue": true
         }
Run Code Online (Sandbox Code Playgroud)

id 想要实现的是保留具有更改值的完整 JSON 输出

{
     "Par": [
         {
             "Key": "12345L",
             "Value": "https://100.100.100.100:100",
             "UseLastValue": true
         },
         {
             "Key": "12345S",
             "Value": "VALHASBEENCHANGED", …
Run Code Online (Sandbox Code Playgroud)

bash json edit jq

4
推荐指数
1
解决办法
1795
查看次数

标签 统计

bash ×1

edit ×1

jq ×1

json ×1