json - 从一个 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 中的“翻译”值。
解决方案
如上所述的问题有点令人困惑,但这里有一个解决方案,假设 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
推荐阅读
- r - 可以检查时间(无日期)是否在特定的日期时间间隔内?
- python - 输入包含 NaN、无穷大或对于 dtype('float32') 来说太大的值。推荐系统django
- c# - 当我运行 dotnet run 时,为什么 dotnet restore 命令会在后台运行?
- php - 从用户键入的字符串中获取特定值
- java - 在 Travis 上本地通过的构建失败
- c# - 无法在 Visual Studio 窗体中添加浏览器控件
- sql - 如何联合多个 CTE 表?
- c - 我正在做一个简单的财务分类帐,但是我做了一个输入和搜索的功能,但是在删除和更正部分被阻止了
- qt - 为什么 Qml Popup 模式被忽略?
- android-studio - 如何在 Kotlin 中将 SQLiteOpenHelper 与片段一起使用