53 lines
1.8 KiB
Markdown
53 lines
1.8 KiB
Markdown
---
|
|
layout: "language"
|
|
page_title: "jsondecode - Functions - Configuration Language"
|
|
sidebar_current: "docs-funcs-encoding-jsondecode"
|
|
description: |-
|
|
The jsondecode function decodes a JSON string into a representation of its
|
|
value.
|
|
---
|
|
|
|
# `jsondecode` Function
|
|
|
|
-> **Note:** This page is about Terraform 0.12 and later. For Terraform 0.11 and
|
|
earlier, see
|
|
[0.11 Configuration Language: Interpolation Syntax](../../configuration-0-11/interpolation.html).
|
|
|
|
`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
|
|
[Terraform language values](/docs/configuration/expressions/types.html)
|
|
in the following way:
|
|
|
|
| JSON type | Terraform 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 Terraform language `null` value |
|
|
|
|
The Terraform 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
|
|
|
|
```
|
|
> jsondecode("{\"hello\": \"world\"}")
|
|
{
|
|
"hello" = "world"
|
|
}
|
|
> jsondecode("true")
|
|
true
|
|
```
|
|
|
|
## Related Functions
|
|
|
|
* [`jsonencode`](./jsonencode.html) performs the opposite operation, _encoding_
|
|
a value as JSON.
|