Поиск значений из одного файла JSON и замена в другом - PullRequest
0 голосов
/ 03 марта 2019

У меня есть 2 файла 1. Translation.json

        {
       "sKEY": "CustomField.Account.Preferred_Name_Local_Language.Fieldlabel",
       "label": "Preferred Name",
       "translation": "Nombre Preferido",
        }

2.Form.json

        {
      "fullName": "Student_Information/Preferred_Name__pc",
      "description": "Preferred Name",
      "inlineHelpText": "Preferred Name",
      "label": "Preferred Name"          
        }

Мне нужно найти «метку» по значению в translation.json и заменить значение «метка» в Form.json значением «translsation» из translation.json.

1 Ответ

0 голосов
/ 03 марта 2019

Проблема, как указано, немного сбивает с толку, но здесь есть решение, предполагающее, что 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
...