======================================================================
 mb::JSON Aide-mémoire                                       [FR] Français
======================================================================

[ Types de données ]
  JSON       -> Perl
  -----------------------------------------------
  "chaîne"   -> scalaire chaîne
  123        -> scalaire nombre
  3.14       -> scalaire flottant
  true       -> mb::JSON::Boolean (vaut 1 en numérique)
  false      -> mb::JSON::Boolean (vaut 0 en numérique)
  null       -> undef
  [...]      -> référence de tableau
  {...}      -> référence de hachage

[ 1. Chargement ]
  use mb::JSON;

[ 2. decode : JSON -> Perl ]
  my $data = mb::JSON::decode($json_text);

[ 3. parse : alias de decode() ]
  my $data = mb::JSON::parse($json_text);

[ 4. encode : Perl -> JSON ]
  my $json = mb::JSON::encode($data);

[ 5. stringify : Perl -> JSON  (alias compatible JavaScript) ]
  my $json = mb::JSON::stringify($data);
  # stringify() et encode() produisent un résultat identique

[ 6. Valeurs booléennes ]
  mb::JSON::true   -> JSON: true
  mb::JSON::false  -> JSON: false
  1 ou 0 ordinaire -> nombre JSON (pas booléen)

[ 7. null / undef ]
  undef -> null (encodage)
  null  -> undef (décodage)

[ 8. Clés de hachage triées alphabétiquement ]
  encode({b=>2,a=>1}) -> '{"a":1,"b":2}'

[ 9. UTF-8 conservé tel quel (pas d'échappement \uXXXX) ]
  decode: "\uXXXX"           -> UTF-8
  decode: "\uD83D\uDE00"     -> 4-byte UTF-8 (emoji)

[ 10. Exemples ]
  my $h = mb::JSON::decode('{"nom":"Alice","age":30}');
  print $h->{nom};   # Alice

  my $j = mb::JSON::encode({nom=>'Alice', actif=>mb::JSON::true});
  # -> {"actif":true,"nom":"Alice"}

  my $j = mb::JSON::stringify({nom=>'Alice', actif=>mb::JSON::true});
  # -> {"actif":true,"nom":"Alice"}

  # aller-retour
  my $data = mb::JSON::decode($json);
  my $retour = mb::JSON::encode($data);
