Règles

  1. Toujours utiliser des fonctions d'encodage et de décodage de JSON. NE PAS ÉCRIRE DU JSON À LA MAIN.
  2. Si vous envoyer du JSON à l'aide d'un serveur HTTP, envoyer l'entête avec le type mime et l'encodage de caractère UTF-8
  3. Ne jamais dire un objet JSON. JSON est encodage "texte" pour les données, il encode des objets en texte. Vous avez soit une chaîne de caractères s'il n'est pas décodé, soit un objet/type dans le langage que vous utilisez.

Rules

  1. Always use encoding/decoding JSON functions. DON'T WRITE BY HAND JSON.
  2. If you send JSON with an HTTP server, send mimetype and charset UTF-8 in header.
  3. Never say "a JSON Object". JSON is a text encoding for data. JSON encode objects in text. You have string, if not decoded or an object/primitive type in the language of your choice.

Fonctions

Encodage

  • Javascript: JSON.stringify(variable)
  • PHP: json_encode($variable)

Décodage

  • Javascript: JSON.parse(string)
  • PHP: json_decode($string)

Entête HTTP

  • PHP: header('Content-type: application/json; charset=UTF-8');
  • Node JS avec express: res.json(variable);

jq

Installation: apt install jq

cat file.json | jq
cat file.json | jq .propertyAtRoot
cat file.json | jq .propertyAtRoot[].prop1 # all properties bla in the array/object
cat file.json | jq '.someArray[] | select(.prop1=="test").prop2'  # all properties bla in the array/object

JMESPath

propertyAtRoot propertyAtRoot[*].prop1 propertyAtRoot[*].prop1[*].prop2

jmespath.org