0
votes

JQ 1.5 Imprimer les éléments de la matrice qui se trouve à l'intérieur d'un autre tableau

Fichier JSON entrant contient une matrice JSON par ligne Par exemple: xxx pré>

un "tableau de filtre" serait ["A99", "A101", "A108"] Code > donc je peux slurpfile code> il p>

Essayer de déterminer comment imprimer uniquement les valeurs intérieures "Tableau de filtre", par exemple la sortie: P>

["a101","a108"]
["a108"]
["a99"]
["a108"]


0 commentaires

3 Réponses :


1
votes

Je serais peut-être manquant une solution plus simple, mais les travaux suivants: xxx

remplacez le ["A99", "A101", "A108"] Code papier Array par votre variable lâchée.

Vous pouvez Essayez ici !


2 commentaires

Cela fonctionne bien, merci. Mon entrée a légèrement changé pour {"Entrée": {"A100": 1, "A101": 5, "A102": 7, "A103": 1, "A104": 1, "A105": 3, "A106 ": 3," A107 ": 3," A108 ": 1 1}, ....} Comment se fait-il que cela ne fonctionne pas: 'Carte (SELECT ((((ENTRÉE (ENTRÉE) AS $ IN | $ ROLLS | contient ([$ in])))? JQPlay.org/s/kuldmepxqt


@Pavel Vous pouvez utiliser .input | clés | Carte (Select (. En $ dans | ["A99", "A101", "A108"] | contient ([$ in]))) . Cela dit, La réponse d'Oguzismail est la solution plus simple que j'étais manquante, je vous recommande d'utiliser.



3
votes

Vous pouvez porter la fonction dans de JQ 1.6 à 1.5 et utilisez: xxx

ou même plus court: xxx


0 commentaires

1
votes

Dans l'exemple, les tableaux dans le flux d'entrée sont triés (dans la commande de JQ ''s COMMANDER), il convient donc de noter que dans de tels cas, une solution plus efficace est possible en utilisant le bsearch intégré, ou peut-être encore mieux, la définition de intersection / 2 donné à https://rosettacode.org/wiki/settacode.org/wiki/setacod.org/wiki/setacod.org/wiki/setacodine_sets_of_json_entities

Pour la facilité de référence, voici: xxx

supposant une invocation JQ telle que: xxx

un filtre approprié serait: xxx

(bien sûr si $ filtre est déjà Présenté dans l'ordre de tri de JQ, alors la tri initiale peut être ignorée, ou remplacée par un chèque.)

sortie xxx

tableaux non formés

En pratique, le filtre SLO / code> Le filtre est généralement si rapide qu'il peut s'agir simplement de trier simplement les tableaux afin d'utiliser intersection tel que défini ci-dessus.


0 commentaires