Bonjour,
Cela fait déjà quelques heures que je recherche, une simple commande pour parser un json en bash.
J'ai choisi d'installer ce package pour obtenir le parser.
J'ai un fichier JSON qui ressemble a ceci.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
{
  "5769": {
    "num": 1,
    "name": "test part 1 ",
    "type": "live",
    "type_name": "live online"
 },
  "12864": {
    "num": 2,
    "name": "test part 2",
    "type": "live",
    "type_name": "Live Streams"
  }
}
J'utilise la commande "jq" pour tenter de monter la liste des "name" comme ci-dessous.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
test part 1 
test part 2

Lorsque je fais la commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
[freeArch$ jq -r '. ' test.json 
{
  "5769": {
    "num": 1,
    "name": "test part 1 ",
    "type": "live",
    "type_name": "live online"
  },
  "12864": {
    "num": 2,
    "name": "test part 2",
    "type": "live",
    "type_name": "Live Streams"
  }
}
Tout va bien, j'arrive a parser mon fichier.
puis je tente
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
[freeArch]$ jq -r '.name' test.json 
null
Ca ne fonctionne pas, c'est normal.
alors j'ai remarqué que si je rajoute id
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
[freeArch]$ jq -r '. | ."12864".name' test.json 
test part 2
Ca fonctionne, comment je peux faire pour ignorer ces identifiants(12864 et 5769 ) pour faire ma liste.

Déjà tenté cette command "jq -r '. | . | ."12864".name' test.json " . mais cela ne focntionne pas.
Comment je dois faire pour creer ma liste comme ci-dessous avec "jq"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
test part 1 
test part 2