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)
   JSON_ERROR_DEPTH
    (entier)
   JSON_ERROR_STATE_MISMATCH
    (entier)
   JSON_ERROR_CTRL_CHAR
    (entier)
   JSON_ERROR_SYNTAX
    (entier)
   JSON_ERROR_UTF8
    (entier)
   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.
    
Cette constante est 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.
    
Cette constante est 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.
    
Cette constante est disponible depuis PHP 5.5.0.
Les constantes suivantes peuvent être combinées pour former des options de json_encode().
JSON_HEX_TAG
    (entier)
   JSON_HEX_AMP
    (entier)
   JSON_HEX_APOS
    (entier)
   JSON_HEX_QUOT
    (entier)
   JSON_FORCE_OBJECT
    (entier)
   JSON_NUMERIC_CHECK
    (entier)
   JSON_BIGINT_AS_STRING
    (entier)
   JSON_PRETTY_PRINT
    (entier)
   JSON_UNESCAPED_SLASHES
    (entier)
   JSON_UNESCAPED_UNICODE
    (entier)
   JSON_PRESERVE_ZERO_FRACTION
    (integer)