假设我有两个输入 JSON 文件。第一个是:
[
{
"name": "one",
"keyB": "2",
"keyC": "3"
},
{
"name": "two",
"keyB": "15",
"keyC": "20"
}
]
第二个:
{
"name": "one",
"type": "FeatureCollection",
"features": [
{
"name": "one",
"valueA": "0",
"valueB" : "0"
},
{
"name": "two",
"valueA": "11",
"valueB": "21"
},
{
"name": "one",
"valueA": "21",
"valueB": "30"
},
{
"name": "two",
"valueA": "1",
"valueB": "2"
},
{
"name": "one",
"valueA": "2",
"valueB": "3"
},
{
"name": "two",
"valueA": "5",
"valueB": "3"
}
]
}
我想创建一个逻辑,当第一个文件中的 .[].name
等于第二个文件中的 .features[].name
时,我将第一个文件中的相应键连接到第二个文件上(考虑到第一个文件上的 .[].name
值始终是唯一的)。所以结果如下:
{
"name": "one",
"type": "FeatureCollection",
"features": [
{
"name": "one",
"valueA": "0",
"valueB" : "0",
"keyB": "2",
"keyC": "3"
},
{
"name": "two",
"valueA": "11",
"valueB": "21",
"keyB": "15",
"keyC": "20"
},
{
"name": "one",
"valueA": "21",
"valueB": "30",
"keyB": "2",
"keyC": "3"
},
{
"name": "two",
"valueA": "1",
"valueB": "2",
"keyB": "15",
"keyC": "20"
},
{
"name": "one",
"valueA": "2",
"valueB": "3",
"keyB": "2",
"keyC": "3"
},
{
"name": "two",
"valueA": "5",
"valueB": "3",
"keyB": "15",
"keyC": "20"
}
]
}
在此输出中,我只是检查了两个 JSON 文件中的 name
是否相等,然后我引入了键 keyB: "2", "keyC": "3"
其中 name == "one"
和 keyB: "15", "keyC": "20"
其中 name == "two"
>。可以用jq来做吗?我可以通过从一个文件获取参数并将其传递给另一个文件的方式来处理两个 JSON 文件吗?
最佳答案
关于json - 我可以使用 jq 使用 JSON 文件中的参数来过滤和修改另一个 JSON 文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68076934/