У меня есть большой JSON-файл, где я хотел бы преобразовать некоторые значения на основе какого-то отображения.Карта значений с JQ
Данные у меня есть выглядит следующим образом:
[
{"id":1, "value":"yes"},
{"id":2, "value":"no"},
{"id":3, "value":"maybe"}
]
И я хотел бы, чтобы преобразовать это в список, как это:
[
{"id":1, "value":"10"},
{"id":2, "value":"0"},
{"id":3, "value":"5"}
]
С фиксированным отображением:
yes => 10
no => 0
maybe => 5
Мое текущее решение основано на простой комбинации if-elif-else
следующим образом:
cat data.json| jq '.data[] | .value = (if .value == "yes" then "10" elif .value == "maybe" then "5" else "0" end)'
Но это действительно уродливо, и я хотел бы иметь более прямой способ выразить отображение.
Спасибо за вашу помощь
Заметим, что , в последних сборках jq вы можете использовать '--argjson' вместо' --arg', чтобы опустить '| fromjson' в скрипте. –