Проблема, как указано, немного сбивает с толку, но здесь есть решение, предполагающее, что jq вызывается так:
jq -f program.jq —-argfile dict translation.jq form.json
, где program.jq содержит:
.label |= if $dict.label == . then $dict.translation else . end
Эквивалентно:
if .label == $dict.label then .label = $dict.translation else . end
if ... then ... end
«Основная» версия jq позволяет if ... then ... end
, так что вышеуказанные решения могут быть соответственно сокращены до:
.label |= if $dict.label == . then $dict.translation end
и:
if .label == $dict.label then .label = $dict.translation end