# Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes suivantes indiquent le type d'erreur retournée par la fonction json_last_error().

`JSON_ERROR_NONE` (entier)
  Aucune erreur n'est survenue. Disponible depuis PHP 5.3.0.
`JSON_ERROR_DEPTH` (entier)
  La profondeur maximale de la pile a été atteinte. Disponible depuis PHP 5.3.0.
`JSON_ERROR_STATE_MISMATCH` (entier)
  Survient avec un underflow ou avec une inadéquation des modes. Disponible depuis PHP 5.3.0.
`JSON_ERROR_CTRL_CHAR` (entier)
  Erreur lors du contrôle des caractères ; probablement un encodage incorrect. Disponible depuis PHP 5.3.0.
`JSON_ERROR_SYNTAX` (entier)
  Erreur de syntaxe. Disponible depuis PHP 5.3.0.
`JSON_ERROR_UTF8` (entier)
  Caractères UTF-8 mal formés, probablement mal encodés. Disponible depuis PHP 5.3.3.
`JSON_ERROR_RECURSION` (integer)
  L'objet ou le tableau passé à la fonction json_encode() inclut les références récursives et ne peuvent être encodées. Si l'option `JSON_PARTIAL_OUTPUT_ON_ERROR` a été fournie, `NULL` sera encodé à la place de la référence récursive. Disponible depuis PHP 5.5.0.
`JSON_ERROR_INF_OR_NAN` (integer)
  La valeur passée à la fonction json_encode() inclut soit `NAN`, soit `INF`. Si l'option `JSON_PARTIAL_OUTPUT_ON_ERROR` a été fournie, 0 sera encodé à la place de ces nombres spéciaux. Disponible depuis PHP 5.5.0.
`JSON_ERROR_UNSUPPORTED_TYPE` (integer)
  Une valeur d'un type non supporté a été fournie à la fonction json_encode(), comme par exemple une resource. Si l'option `JSON_PARTIAL_OUTPUT_ON_ERROR` a été fournie, `NULL` sera encodé à la place de la valeur non supportée. Disponible depuis PHP 5.5.0.
`JSON_ERROR_INVALID_PROPERTY_NAME` (integer)
  Une clé commençant avec le charactère \u0000 était présent dans la chaîne de charactères passé à json_decode() lors d'un décodage d'un object JSON en un object PHP. Disponible depuis PHP 7.0.0.
`JSON_ERROR_UTF16` (integer)
  Substitut UTF-16 simple non apparié dans l'échappement unicode contenue dans la chaîne de charactères JSON passé à json_encode(). Disponible depuis PHP 7.0.0.

Les constantes suivantes peuvent être combinées pour former les options de json_decode().

`JSON_BIGINT_AS_STRING` (integer)
  Décode les gros entiers sous forme d'une chaîne de caractères. Disponible depuis PHP 5.4.0.
`JSON_OBJECT_AS_ARRAY` (integer)
  Décode un object JSON en tableau PHP. Cette option peut être ajouté automatiquement en appelant json_decode() avec le deuxième paramètre égal à `TRUE`. Available since PHP 5.4.0.

Les constantes suivantes peuvent être combinées pour former les options de json_encode().

`JSON_HEX_TAG` (entier)
  Tous les caractères < et > sont convertis en séquences \u003C et \u003E. Disponible depuis PHP 5.3.0.
`JSON_HEX_AMP` (entier)
  Tous les caractères & sont convertis en \u0026. Disponible depuis PHP 5.3.0.
`JSON_HEX_APOS` (entier)
  Tous les guillemets ' sont convertis en \u0027. Disponible depuis PHP 5.3.0.
`JSON_HEX_QUOT` (entier)
  Tous les guillemets doubles " sont convertis en \u0022. Disponible depuis PHP 5.3.0.
`JSON_FORCE_OBJECT` (entier)
  Produit un objet plutôt qu'un tableau, lorsqu'un tableau non-associatif est utilisé. C'est particulièrement utile lorsque le destinataire du résultat attend un objet, et que le tableau est vide. Disponible depuis PHP 5.3.0.
`JSON_NUMERIC_CHECK` (entier)
  Encode les chaînes numériques en tant que nombres. Disponible depuis PHP 5.3.3.
`JSON_PRETTY_PRINT` (entier)
  Utilise des espaces dans les données retournées pour les formater. Disponible depuis PHP 5.4.0.
`JSON_UNESCAPED_SLASHES` (entier)
  Ne pas échapper les caractères /. Disponible depuis PHP 5.4.0.
`JSON_UNESCAPED_UNICODE` (entier)
  Encode les caractères multi-octets Unicode littéralement (le comportement par défaut est de les échapper par \uXXXX). Disponible depuis PHP 5.4.0.
`JSON_PARTIAL_OUTPUT_ON_ERROR` (integer)
  Substitue certaines valeurs non encodable au lieu d'échouer. Available since PHP 5.5.0.
`JSON_PRESERVE_ZERO_FRACTION` (integer)
  S'assure que les valeurs de type float sont toujours encodées comme valeur de type float. Disponible depuis PHP 5.6.6.
`JSON_UNESCAPED_LINE_TERMINATORS` (integer)
  Les terminateurs de ligne sont conservés sans être échappés quand `JSON_UNESCAPED_UNICODE` est fourni. Il utilise le même comportement comme si c'était avant PHP 7.1 sans cette constante. Disponible depuis PHP 7.1.0.

Les constantes suivantes peuvent être combinées pour former les options de json_decode() et json_encode().

`JSON_THROW_ON_ERROR` (integer)
  Émet une JsonException si une erreur se produit au lieu de régler l'état d'erreur globale qui est récupérer grâce à json_last_error(). `JSON_PARTIAL_OUTPUT_ON_ERROR` prend la priorité par rapport à `JSON_THROW_ON_ERROR`. Disponible depuis PHP 7.3.0.