从一个JSON文件中查找值,然后在另一个文件中替换

时间:2019-03-03 00:44:51

标签: json translation jq

我有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中的“标签”值替换为translation.json中的“翻译”值。

1 个答案:

答案 0 :(得分:0)

上述问题有点令人费解,但这是一个解决方案,假设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

如果...那么...结束

jq的“主”版本允许if ... then ... end,因此上述解决方案可以分别缩短为:

.label |= if $dict.label == . then $dict.translation end

和:

if .label == $dict.label then .label = $dict.translation end