Ich muss den Wert einer Schlüsselgruppe (definiert in einer Variablen) in einem JSON-Objekt mithilfe von jq ändern.Ändern von JSON-Werten basierend auf einem Array von Schlüsseln mithilfe von jq
Als Beispiel habe ich dieses JSON-Objekt:
{
foo: {
bar: 1,
baz: 2,
qux: 3
}
}
und die folgende Variable:
update_keys = ["bar", "baz"]
Ich mag würde sagen, 'den Wert der Schlüssel in update_keys zu X ändern'.
Die folgenden Werke:
.foo = (.foo |
to_entries |
map(if .key == "bar" or .key == "baz"
then . + { "value":"X" }
else .
end) |
from_entries)
Aber statt if .key == "bar" or .key == "baz"
ich nach einem Weg suchen if .key in update_keys
zu sagen, oder eine ähnliche Logik.
Können Sie näher erläutern, was das Ergebnis sein sollte. Nicht sicher, ob Sie update_keys erweitern oder ändern möchten.foo –
Ich möchte foo aktualisieren, indem ich die Werte der im Array update_keys definierten Schlüssel ändere (alle Schlüssel ändern sich auf den gleichen Wert) – fusio
Ist 'update_keys' bereits eine Variable, die du in' jq' definiert hast? –