0
votes

Réduire les matrices JSON en une seule matrice avec des valeurs de clé combinées

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'à. XXX PRE>

La sortie souhaitée serait la suivante: ( édité ci-dessous pour prendre un itinéraire différent em> strong> ) p> xxx pré>

Je ne suis pas honnêtement sûr de ce qui va se passer avec le dupliqué . 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>

Utilisation de ce filtre avec l'option 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> xxx pré>

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>

[
  {
    "targetLanguage": "pt_BR",
    "jobId": [
      35826846, 35826837
    ],
    "earlyAccessStatus": [
      "IN_PROGRESS"
    ]
  },
  {
    "targetLanguage": "zh_CN",
    "jobId": [
      35826845, 35826836
    ],
    "earlyAccessStatus": [
      "IN_PROGRESS", "NOT_STARTED"
    ]
  }
]


1 commentaires

ne sont pas Double tableaux sous "Emplois" Structurellement superflu? Vous avez déjà regrouper des objets, pourquoi avez-vous besoin de garder chaque objet dans un tableau séparé?


3 Réponses :


0
votes

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"
          ]
        }
      ]
    ]
  }
]


0 commentaires

0
votes

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"
        }
      ]
    ]
  }
]


0 commentaires

0
votes

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"
    ]
  }
]


0 commentaires