> ## Documentation Index
> Fetch the complete documentation index at: https://docs.projectreal.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# json.decode

> Parse un JSON string avec Real JSON parser et renvoie le decoded Lua value, en marquant decoded arrays et objects pour les JSON helpers.

<div className="real-function-page">
  ```lua theme={null}
  json.decode(json: string, options?: DecodeOptions): any
  ```

  ## Arguments

  <ParamField path={"json"} type={"string"} required>
    JSON text a parser. Le parser accepte une seule JSON value avec optional surrounding whitespace et lance une erreur en cas de invalid syntax ou trailing non-whitespace characters.
  </ParamField>

  <ParamField path={"options"} type={"DecodeOptions"}>
    Optional decode options. Un boolean definit useNull directement. Une table peut definir useNull et maxDepth; maxDepth est clamp de 1 a 4096.
  </ParamField>

  ## Retours

  <ResponseField name={"decoded"} type={"any"}>
    Decoded value. JSON objects et arrays deviennent des tables avec JSON type markers, strings deviennent Lua strings, numbers deviennent Lua numbers, booleans deviennent booleans, et null devient json.null sauf si useNull est false.
  </ResponseField>

  ## Types

  ### DecodeOptions

  Contrôle le comportement d'analyse JSON.

  | Name       | Type      | Required | Description                                                                      |
  | ---------- | --------- | -------- | -------------------------------------------------------------------------------- |
  | `useNull`  | `boolean` | No       | Représente JSON null avec la sentinelle nulle de la bibliothèque au lieu de nil. |
  | `maxDepth` | `integer` | No       | Définit la profondeur d'imbrication maximale, comprise entre 1 et 4 096.         |

  ## Exemple

  Decode JSON en Lua values tout en conservant JSON array, object et null markers.

  ```lua theme={null}
  local value = json.decode('{"name":"Real","tags":["docs"],"missing":null}')

  print(value.name)
  print(value.tags[1])
  print(json.type(value))
  print(json.isNull(value.missing))
  ```
</div>
