48 lines
1.6 KiB
Plaintext
48 lines
1.6 KiB
Plaintext
---
|
|
page_title: jsondecode - Functions - Configuration Language
|
|
sidebar_title: jsondecode
|
|
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.
|