样品input1.json
[{ "organizationId": "org1", "test1": "UP", "key1": "value1" }, { "organizationId": "org2", "test1": "UP", "key1": "value3" }]
样品input2.json
[{ "organizationId": "org1", "test2": "DOWN", "key1": "value4" }, { "organizationId": "org3", "test2": "DOWN", "key1": "value5" }]
预计output.json
[{ "organizationId": "org1", "test1": "UP", "key1": "value4", "test2": "DOWN" }, { "organizationId": "org2", "test1": "UP", "key1": "value3" }, { "organizationId": "org3", "test2": "DOWN", "key1": "value5" } ]
输入是两个文件的阵列对象。 我的目标是合并两个对象,如果他们有相同的值,并保留其他物体完好。 我部分通过分组来实现这一
jq -s '[ .[0] + .[1] | group_by(.organizationId)[] | select(length > 1) |add ]' ìnput1.json input2.json
集团通过organizationId对象。 在两个输入“organizationId”:“ORG1”可用,因此它可以进行分组。 我现在面临的问题是我失去其他对象“organizationId”:从input1.json和“organizationId”“ORG2”:“org3”从input2.json不每个人存在的文件。
分组的基本原理实现,但我确实需要从两个文件保存任何其他对象即使没有匹配。 如果我们使用GROUP_BY如果我们想保留的其他对象? 如果不是这样,怎么可以用JQ我达到预期的输出?