首页 > 解决方案 > 从一个 JSON 文件中查找值并在另一个文件中替换

问题描述

我有 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 中的“翻译”值。

标签: jsontranslationjq

解决方案


如上所述的问题有点令人困惑,但这里有一个解决方案,假设 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 的“master”版本允许if ... then ... end,因此上述解决方案可以分别缩短为:

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

和:

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

推荐阅读