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"))
Parameters
path
Path to a JSON file.
Definitions
decode
Reads structured data from a JSON string/bytes.
data
JSON data.
encode
Encodes structured data into a JSON string.
value
anyRequiredPositional
Value to be encoded.
pretty
Whether to pretty print the JSON with newlines and indentation.
Default: true