我想使用jq合并到json对象。这些文件在Label和Description数组中有所不同。结果中应显示所有语言的所有描述。对象也可能更复杂,因此解决方案应该递归地工作。
文件1:
{
"A": {
"Description": [{
"Language": "",
"Text": "Default Text 1"
}, {
"Language": "de",
"Text": "German Text 1"
}
],
"Label": [{
"Language": "",
"Text": "Default Text 2"
}, {
"Language": "de",
"Text": "German Text 2"
}
]
}
}
文件2:
{
"A": {
"Description": [{
"Language": "en",
"Text": "English Text 1"
}
],
"Label": [ {
"Language": "en",
"Text": "English Text 2"
}
]
}
}
预期结果:
{
"A": {
"Description": [{
"Language": "",
"Text": "Default Text 1"
}, {
"Language": "de",
"Text": "German Text 1"
}, {
"Language": "en",
"Text": "English Text 1"
}
],
"Label": [{
"Language": "",
"Text": "Default Text 2"
}, {
"Language": "de",
"Text": "German Text 2"
}, {
"Language": "en",
"Text": "English Text 2"
}
]
}
}
谢谢, 亚历克斯
答案 0 :(得分:0)
好吧,除非缺少以下内容,否则我认为这个问题是重复的:How to merge 2 json file using jq?
答案 1 :(得分:0)
这将为您提供带有示例的预期结果。也许它将使您开始寻找更通用的解决方案。
jq 'reduce inputs as $i (.;
.A.Description += $i.A.Description
| .A.Label += $i.A.Label
)' File1.json File2.json
如果您搜索“合并数组”,我认为您会更幸运。我发现了一些看起来与您相似的案例。