首页 > 解决方案 > jq在变量的帮助下更新键和值

问题描述

我需要使用给定的键和值更新 JSON 数据。我尝试将其作为键和值的变量传递。我有 JSON 数据,在我的 Unix 方法中,我将键和值作为参数。我需要使用给定值更新该键的 JSON 数据。

标签: jsonunixjq

解决方案


假设您只是按对象中某处的名称更新属性以及您希望设置键的复杂程度,您可以获得树中值的所有路径并进行比较以设置您的值。

$ jq --arg key 'somekey' --arg value 'somevalue' 'reduce (paths | select(.[-1] | tostring == $key)) as $i (.;
    setpath($i; $value)
)' input.json

推荐阅读