Ich verwende die jq Werkzeuge (jq-json-Prozessor) in Shell-Skript, um JSON zu analysieren.Wie 2 json-Datei mit jq zusammenführen?
Ich habe 2 json Dateien und wollen, dass sie in einer einzigen Datei
Hier wird der Inhalt von Dateien fusionieren:
file1
{
"value1": 200,
"timestamp": 1382461861,
"value": {
"aaa": {
"value1": "v1",
"value2": "v2"
},
"bbb": {
"value1": "v1",
"value2": "v2"
},
"ccc": {
"value1": "v1",
"value2": "v2"
}
}
}
file2
{
"status": 200,
"timestamp": 1382461861,
"value": {
"aaa": {
"value3": "v3",
"value4": 4
},
"bbb": {
"value3": "v3"
},
"ddd": {
"value3": "v3",
"value4": 4
}
}
}
erwartetes Ergebnis
{
"value": {
"aaa": {
"value1": "v1",
"value2": "v2",
"value3": "v3",
"value4": 4
},
"bbb": {
"value1": "v1",
"value2": "v2",
"value3": "v3"
},
"ccc": {
"value1": "v1",
"value2": "v2"
},
"ddd": {
"value3": "v3",
"value4": 4
}
}
}
Ich versuche viel combinaison aber das einzige Ergebnis, das ich bekommen ist die folgende, die nicht das erwartete Ergebnis ist:
{
"ccc": {
"value2": "v2",
"value1": "v1"
},
"bbb": {
"value2": "v2",
"value1": "v1"
},
"aaa": {
"value2": "v2",
"value1": "v1"
}
}
{
"ddd": {
"value4": 4,
"value3": "v3"
},
"bbb": {
"value3": "v3"
},
"aaa": {
"value4": 4,
"value3": "v3"
}
}
Mit diesem Befehl:
jq -s '.[].value' file1 file2
Haben Sie versucht jsontool? https://github.com/trentm/json –
Noch nicht, ich werde einen Blick darauf werfen. Thx – Janfy
Um dies mit 'Json' zu tun, benutzen Sie:' cat f1 f2 | json --deep-merge' – xer0x