J'ai une sortie JSON comme suit:
{
"example": {
"sub-example": [
{
"name": "123-345",
"tag" : 100
},
{
"name": "234-456",
"tag" : 100
},
{
"name": "4a7-a07a5",
"tag" : 100
}
]
}
}
Je veux extraire les valeurs des trois champs "name" et les stocker dans trois variables.
J'ai essayé cat json_file | jq '.["example.sub-example.name"]'
pour extraire la valeur du champ "name" mais cela ne fonctionne pas.
Quelqu'un peut-il me dire comment y parvenir en utilisant jq (ou une autre méthode)?
Si vous voulez seulement extraire les champs name
, la commande que vous recherchez est jq '.example."sub-example" | .[] | .name'
. Si vous souhaitez conserver les noms dans un tableau, placez l'expression jq
entière entre crochets.
Dans jq 1.3, vous pouvez utiliser le filtre:
.example["sub-example"] | .[] | .name
Ou plus compactement:
.example["sub-example"][].name
Bien entendu, ceux-ci fonctionnent également avec les versions ultérieures de jq.