J'ai un tableau JSON qui contient beaucoup d'objets et il ressemble à ceci:JQ: Ajouter des valeurs d'une clé spécifique pour tous les objets avec la même ID
[
{"ID":"A","VALUE":12,"TYPE":"single"},
{"ID":"A","VALUE":17,"TYPE":"single"},
{"ID":"A","VALUE":-7,"TYPE":"single"},
{"ID":"B","VALUE":35,"TYPE":"single"},
{"ID":"B","VALUE":10,"TYPE":"single"},
{"ID":"B","VALUE":15,"TYPE":"single"},
{"ID":"C","VALUE":0,"TYPE":"single"},
{"ID":"C","VALUE":13,"TYPE":"single"},
{"ID":"C","VALUE":20.5,"TYPE":"single"}
]
Maintenant, je voudrais ajouter toutes les valeurs pour chaque ID et créer de nouveaux objets avec les résultats comme ceci:
{"ID":"A","VALUE":22,"TYPE":"total"},
{"ID":"B","VALUE":60,"TYPE":"total"},
{"ID":"C","VALUE":23.5,"TYPE":"total"}
De plus, les objets résultants doivent être ajoutés au tableau initial. Je suis assez nouveau à jq alors j'ai fait quelques recherches. En effet, je sais comment obtenir les totaux pour un ID:
[.[] | select(."ID"=="A").VALUE]|add
-> 22
et comment créer de nouveaux objets:
.[] | {ID: .ID, VALUE: .VALUE, TYPE: "total"}
Mais comment puis-je obtenir le format que je veux partir d'ici? Avec une boucle?
Merci!
Merci! Cela fonctionne, et oui, il devrait être 33,5 :) – user2556342