Skip to main content

jsonencode Function

jsonencode encodes a given value to a string using JSON syntax.

The JSON encoding is defined in RFC 7159.

This function maps OpenTofu language values to JSON values in the following way:

OpenTofu typeJSON type
stringString
numberNumber
boolBool
list(...)Array
set(...)Array
tuple(...)Array
map(...)Object
object(...)Object
Null valuenull

Since the JSON format cannot fully represent all of the OpenTofu language types, passing the jsonencode result to jsondecode will not produce an identical value, but the automatic type conversion rules mean that this is rarely a problem in practice.

When encoding strings, this function escapes some characters using Unicode escape sequences: replacing <, >, &, U+2028, and U+2029 with \u003c, \u003e, \u0026, \u2028, and \u2029.

The jsonencode command outputs a minified representation of the input.

Examples

Code Block
> jsonencode({"hello"="world"})
{"hello":"world"}
  • jsondecode performs the opposite operation, decoding a JSON string to obtain its represented value.