J'essaie de combiner plusieurs réseaux JSON dans un seul tableau de valeurs clés réduites. Voici ce que j'ai obtenu le code jusqu'à. La sortie souhaitée serait la suivante: ( édité ci-dessous pour prendre un itinéraire différent em> strong> ) p> Je ne suis pas honnêtement sûr de ce qui va se passer avec le dupliqué Utilisation de ce filtre avec l'option mise à jour:
Voici à quoi ressemble le Json cru avant que je n'ai rien manipulé. Je ne suis pas attaché à une méthode spécifique. Ce que j'essaie de faire est de prendre les données sur un projet avec divers emplois et d'isoler les langues pour lesquelles tous les travaux associés ont atteint une certaine étape (fichier de fichiers cible1) comme indiqué par "IN_PROGRESS". Si la langue a un travail dans une étape différente, comme par exemple, ZH_CN ci-dessous, alors cette langue n'est pas prête et ne doit pas le faire par le filtre. P> Pour obtenir la sortie ci-dessus, j'avais fait C'est jusqu'à (avec une mise à jour faite pour éliminer les tableaux redondants à l'intérieur des "emplois" suggéré déjà et je m'excuse à l'avance pour toute tentative de frankensteine à la séparation de ligne que vous voyez dans la commande JQ): P> . EarlyAccessStatus code> valeurs de clé, que ce soit
[" In_progress "," in_progress "] code> ou
[" in_progress "] code>. Ce dernier convient à mes besoins éventuels, qui sont à saisir le
.Targetlanguage code> de n'importe quelle langue dont le seul
.arlyaccessstatus code> est
["in_progress"] code>. p>
JQ -R code>, je peux retirer la valeur
.TargetLanguage code> pour toutes les langues dont le seul
.earlyaccessstatus est
["in_progress"] code>. Toute aide serait grandement appréciée! P>
[
{
"targetLanguage": "pt_BR",
"jobId": [
35826846, 35826837
],
"earlyAccessStatus": [
"IN_PROGRESS"
]
},
{
"targetLanguage": "zh_CN",
"jobId": [
35826845, 35826836
],
"earlyAccessStatus": [
"IN_PROGRESS", "NOT_STARTED"
]
}
]
3 Réponses :
Tous ces tableaux de longue de 1 élément sont une douleur, et je suis sûr qu'il y a un meilleur moyen de le faire, mais les travaux suivants:
[ { "projectId": 35525710, "jobs": [ [ { "targetLanguage": "pt_BR", "jobId": [ 35826846, 35826837 ], "earlyAccessStatus": [ "IN_PROGRESS" ] } ], [ { "targetLanguage": "zh_CN", "jobId": [ 35826845, 35826836 ], "earlyAccessStatus": [ "IN_PROGRESS", "NOT_STARTED" ] } ] ] } ]
Vous voudrez peut-être repenser tous ces tableaux - dans les tableaux, mais ce qui suit obtient ce que vous voulez, sauf peut-être pour la commande des groupes, et des clés suivantes:
[ { "projectId": 35525710, "jobs": [ [ { "earlyAccessStatus": [ "IN_PROGRESS", "IN_PROGRESS" ], "jobId": [ 35826846, 35826837 ], "targetLanguage": "pt_BR" } ], [ { "earlyAccessStatus": [ "NOT_STARTED", "IN_PROGRESS" ], "jobId": [ 35826845, 35826836 ], "targetLanguage": "zh_CN" } ] ] } ]
a compris quelque chose qui a fonctionné! Je suis allé plus la route de groupe_by et unique.
[ { "targetLanguage": "pt_BR", "jobId": [ 35902526, 36433561, 36433552 ], "earlyAccessStatus": [ "IN_PROGRESS" ], "finalStatus": [ "IN_PROGRESS" ] }, { "targetLanguage": "zh_CN", "jobId": [ 35902516, 36433560, 36433551 ], "earlyAccessStatus": [ "IN_PROGRESS", "NOT_STARTED" ], "finalStatus": [ "IN_PROGRESS" ] } ]
ne sont pas Double tableaux sous
"Emplois" Code> Structurellement superflu? Vous avez déjà regrouper des objets, pourquoi avez-vous besoin de garder chaque objet dans un tableau séparé?