JSON
JSON (en anglais JavaScript Object Notation) : format texte d'échange de données, défini par la RFC 8259 et la norme ECMA-404, avec six types de valeurs : objet (paires clé-valeur entre accolades, clés en chaînes), tableau (liste ordonnée entre crochets), chaîne (entre guillemets doubles, en Unicode avec échappements \n, \", \u00e9), nombre, true ou false, et null. Les valeurs s'imbriquent à volonté ; les espaces entre les éléments sont libres. Un document échangé entre systèmes doit être en UTF-8.
C'est le format des API web, de la sortie -o json de scw, kubectl ou aws, de nombreux fichiers de configuration et des journaux structurés (JSON Lines). Sa structure imbriquée et ses chaînes échappées interdisent de le traiter de façon fiable avec des outils de lignes comme grep ou sed : on l'analyse avec un outil qui connaît le format, comme jq, et on le produit de même, jamais par concaténation de texte. La RFC laisse aux implémentations la précision des nombres (en pratique, souvent un flottant double) et le traitement des clés en double.
Dans les cours
- Traiter du texte : grep, sed, awk, jq, leçon 3 : sed : le cycle et la substitution
- Traiter du texte : grep, sed, awk, jq, leçon 7 : jq : interroger du JSON
- Traiter du texte : grep, sed, awk, jq, leçon 8 : jq : transformer, produire du JSON et choisir son outil