json
Reads structured data from a JSON file.
The file must contain a valid JSON object or array. JSON objects will be converted into Typst dictionaries, and JSON arrays will be converted into Typst arrays. Strings and booleans will be converted into the Typst equivalents, null
will be converted into none
, and numbers will be converted to floats or integers depending on whether they are whole numbers.
The function returns a dictionary or an array, depending on the JSON file.
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"))

ParametersParameters are the inputs to a function. They are specified in parentheses after the function name.
path
Path to a JSON file.
DefinitionsFunctions and types and can have associated definitions. These are accessed by specifying the function or type, followed by a period, and then the definition's name.
decode
Reads structured data from a JSON string/bytes.
data
JSON data.
encode
Encodes structured data into a JSON string.
value
anyRequiredPositionalPositional parameters are specified in order, without names.
Value to be encoded.
pretty
Whether to pretty print the JSON with newlines and indentation.
Default: true