cClaude.rocks ☕ Le blog

[Nouvelles technologies du libre, sciences et coups de gueule…]

Menu
😤 Ce billet a été édité le : 2024-02-09

jq est un processeur JSON en ligne de commande, elle permet de transformer un document JSON en un autre. Certaines options permettent de convertir depuis et vers d’autres formats.



Supprimer le tableau vide ([] ou null)

jq '[ .[] | select(length > 0) ]'

Prenons l’exemple suivant :

TEST=$( cat <<EOF | jq -c .
{
  "tableaux": [
    ["A","B","C"],
    null,
    ["E","F","G"],
    ["H","I"],
    [],
    ["K"]
  ]
}
EOF
)

La commande ici sera :

jq '.tableaux | [ .[] | select(length > 0) ]' <<<"${TEST}"

Dans le cas général, pour corriger le document initial, on utilisera :

jq '. + { tableaux:( .tableaux | [ .[] | select(length > 0) ]) }' <<<"${TEST}"


Utilisation de map(x)

La fonction map(X) est équivalent à [.[] | X], donc on peut écrire :

jq '[ .[] | select(length > 0) ]'
jq 'map(select(length > 0))'

Pour vérifier avec l’exemple plus haut :

jq '.tableaux | map(select(length > 0))' <<<"${TEST}"

ou pour reconstruire tout le fichier :

jq '. + { tableaux:( .tableaux | map(select(length > 0))) }' <<<"${TEST}"


Autre billets et documentations :

ᦿ


ℹ 2006 - 2024 | 🏠 Accueil du domaine | 🏡 Accueil du blog