---
page_title: jsondecode - Functions - Configuration Language
description: |-
  The jsondecode function decodes a JSON string into a representation of its
  value.
---

# `jsondecode` Function

`jsondecode` interprets a given string as JSON, returning a representation
of the result of decoding that string.

The JSON encoding is defined in [RFC 7159](https://tools.ietf.org/html/rfc7159).

This function maps JSON values to
[Packer language values](/docs/templates/hcl_templates/expressions#types-and-values)
in the following way:

| JSON type | Packer type                                                  |
| --------- | ------------------------------------------------------------ |
| String    | `string`                                                     |
| Number    | `number`                                                     |
| Boolean   | `bool`                                                       |
| Object    | `object(...)` with attribute types determined per this table |
| Array     | `tuple(...)` with element types determined per this table    |
| Null      | The Packer language `null` value                             |

The Packer language automatic type conversion rules mean that you don't
usually need to worry about exactly what type is produced for a given value,
and can just use the result in an intuitive way.

## Examples

```shell-session
> jsondecode("{\"hello\": \"world\"}")
{
  "hello" = "world"
}
> jsondecode("true")
true
```

## Related Functions

- [`jsonencode`](/docs/templates/hcl_templates/functions/encoding/jsonencode) performs the opposite operation, _encoding_
  a value as JSON.
