Documentation

jsonGo to source

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"))

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

json(strpathbytes) → any

source
str or path or bytes
RequiredPositional
Question mark

A path to a JSON file or raw JSON bytes.

Definitions
Question mark

encodeGo to source

Encodes structured data into a JSON string.

json.encode(
any,pretty: bool,
) → str

value
any
RequiredPositional
Question mark

Value to be encoded.

prettyDefault: true

Whether to pretty print the JSON with newlines and indentation.