> ## 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.parse

> Parse un JSON string avec la meme function que json.decode.

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

  ## Arguments

  <ParamField path={"json"} type={"string"} required>
    JSON string a parse. L'function lit cet argument avec string type checking.
  </ParamField>

  <ParamField path={"options"} type={"DecodeOptions"}>
    Optional decode options. Un boolean definit useNull. Une table peut definir useNull et maxDepth.
  </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

  Parse JSON avec la meme function que celle utilisee par json.decode.

  ```lua theme={null}
  local settings = json.parse('{"volume":0.75,"theme":"dark","missing":null}', {
      useNull = true,
  })

  print(settings.volume)
  print(settings.theme)
  print(json.isNull(settings.missing))
  ```
</div>
