Documentation

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

Parameters
Question mark

json() -> any

source
str or bytes
Required Positional
Question mark

A path to a JSON file or raw JSON bytes.

Definitions
Question mark

decode
Warning
json.decode is deprecated, directly pass bytes to json instead; it will be removed in Typst 0.15.0

Reads structured data from a JSON string/bytes.

json.decode() -> any

data
str or bytes
Required Positional
Question mark

JSON data.

encode

Encodes structured data into a JSON string.

json.encode() -> str

value
any
Required Positional
Question mark

Value to be encoded.

pretty

Whether to pretty print the JSON with newlines and indentation.

Default: true