Info
This site is generated using the static site generator developed by the Typst Community. Please adjust the text content of this banner according to your usage requirements. At Typst GmbH's request, when publishing documentation, you must clearly indicate that it is non-official and display the version of Typst being documented. For details, refer to Issue #874 on typst/typst.
TypstDocumentEnglish
v0.dev.2025-09-12

json

Reads structured data from a JSON file.

The file must contain a valid JSON value, such as object or array. The JSON values will be converted into corresponding Typst values as listed in the table below.

The function returns a dictionary, an array or, depending on the JSON file, another JSON data type.

The JSON files in the example contain objects with the keys temperature, unit, and weather.

Example

#let forecast(day) = block[
  #box(square(
    width: 2cm,
    inset: 8pt,
    fill: if day.weather == "sunny" {
      yellow
    } else {
      aqua
    },
    align(
      bottom + right,
      strong(day.weather),
    ),
  ))
  #h(6pt)
  #set text(22pt, baseline: -8pt)
  #day.temperature °#day.unit
]

#forecast(json("monday.json"))
#forecast(json("tuesday.json"))
Preview

Conversion details

JSON valueConverted into Typst
nullnone
boolbool
numberfloat or int
stringstr
arrayarray
objectdictionary
Typst valueConverted into JSON
types that can be converted from JSONcorresponding JSON value
bytesstring via repr
symbolstring
contentan object describing the content
other types (length, etc.)string via repr

Notes

  • In most cases, JSON numbers will be converted to floats or integers depending on whether they are whole numbers. However, be aware that integers larger than 263-1 or smaller than -263 will be converted to floating-point numbers, which may result in an approximative value.

  • Bytes are not encoded as JSON arrays for performance and readability reasons. Consider using cbor.encode for binary data.

  • The repr function is for debugging purposes only, and its output is not guaranteed to be stable across Typst versions.

Parameter
Parameter
Parameters are input values for functions. Specify them in parentheses after the function name.

json()->
any

source
Required
Required
Required parameters must be specified when calling the function.
Positional
Positional
Positional parameters can be set by specifying them in order, omitting the parameter name.

A path to a JSON file or raw JSON bytes.

Definition
Definition
These functions and types can have related definitions. To access a definition, specify the name of the function or type, followed by the definition name separated by a period.

decode

Reads structured data from a JSON string/bytes.

json.decode()->
any

data
Required
Required
Required parameters must be specified when calling the function.
Positional
Positional
Positional parameters can be set by specifying them in order, omitting the parameter name.

JSON data.

encode

Encodes structured data into a JSON string.

json.encode()->

value
any
Required
Required
Required parameters must be specified when calling the function.
Positional
Positional
Positional parameters can be set by specifying them in order, omitting the parameter name.

Value to be encoded.

pretty

Whether to pretty print the JSON with newlines and indentation.

Default value:

true

Open official docs

Search