Outils pour utilisateurs

Outils du site


web:javascript:json:jq

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
web:javascript:json:jq [2020/01/20 16:19] – [Utilisation] sgariepyweb:javascript:json:jq [2023/06/12 15:05] (Version actuelle) – [Utilisation] sgariepy
Ligne 1: Ligne 1:
 ====== jq ====== ====== jq ======
  
-jq est un programme en ligne de commande pour traiter du JSON.  Le [[https://stedolan.github.io/jq/|site officiel]].+jq est un programme en ligne de commande pour traiter du JSON.  Le [[https://stedolan.github.io/jq/|site officiel]].  [[https://earthly.dev/blog/jq-select/|An Introduction to JQ]]
  
  
Ligne 112: Ligne 112:
  
   $ cat data.json | jq '.response.result.Countries.row[].FL | {country: .[0].content, president: .[1].content, val: .[1].val} | select(.country == "USA") | {president, val}'   $ cat data.json | jq '.response.result.Countries.row[].FL | {country: .[0].content, president: .[1].content, val: .[1].val} | select(.country == "USA") | {president, val}'
 +
 +
 +
 +===== To Entries avec Map =====
 +
 +Pour //pivoter// les clés d'objets en valeurs, par exemple dans ce cas-ci:
 +
 +<code json>
 +{
 +    "items": {
 +        "01": {
 +            "name": "Name of 01",
 +            "spec": {
 +                "name": "Specific name 01"
 +            }
 +        },
 +        "02": {
 +            "name": "Name of 02",
 +            "spec": {
 +                "name": "Specific name 02"
 +            }
 +        }
 +    }
 +}
 +</code>
 +
 +On peut utiliser ''to_entries'' pour que les items 01 et 02 soient des valeurs de ''key'' et l'objet lui-même soit une valeur:
 +
 +<code>
 +$ cat ./test.json | jq '.items | to_entries'
 +[
 +  {
 +    "key": "01",
 +    "value": {
 +      "name": "Name of 01",
 +      "spec": {
 +        "name": "Specific name 01"
 +      }
 +    }
 +  },
 +  {
 +    "key": "02",
 +    "value": {
 +      "name": "Name of 02",
 +      "spec": {
 +        "name": "Specific name 02"
 +      }
 +    }
 +  }
 +]
 +</code>
 +
 +Avec ''map'', on peut alors façonner un objet comme on le veut:
 +
 +<code>
 +$ cat ./test.json | jq '.items | to_entries | map({ itemCode: .key, name: .value.name, specName: .value.spec.name })'
 +[
 +  {
 +    "itemCode": "01",
 +    "name": "Name of 01",
 +    "specName": "Specific name 01"
 +  },
 +  {
 +    "itemCode": "02",
 +    "name": "Name of 02",
 +    "specName": "Specific name 02"
 +  }
 +]
 +</code>
 +
 +
 +
 +
 +
 +
  
  
web/javascript/json/jq.1579533543.txt.gz · Dernière modification : 2022/02/02 00:43 (modification externe)