Aside from R code, tfrmt objects can be represented as
machine-readable metadata in JSON format. This enables
users to save formatting metadata to a database, or alternatively import
templates stored as JSON files. There are several utilities
available for seamless translation between tfrmt and
JSON.
tfrmt to JSON
A tfrmt object can be converted to JSON
using the tfrmt_to_json function. Suppose we have a basic
tfrmt:
template_tfrmt <- tfrmt(
group = grp,
label = label,
column = column,
param = param,
value=value,
body_plan = body_plan(
frmt_structure(group_val = ".default",
label_val = ".default",
frmt("xx.x")))
)
template_tfrmt %>% print_mock_gt()| column1 | column2 | column3 | |
|---|---|---|---|
| grp_1 | |||
| label_1 | xx.x | xx.x | xx.x |
| label_2 | xx.x | xx.x | xx.x |
| label_3 | xx.x | xx.x | xx.x |
| grp_2 | |||
| label_1 | xx.x | xx.x | xx.x |
| label_2 | xx.x | xx.x | xx.x |
| label_3 | xx.x | xx.x | xx.x |
| grp_3 | |||
| label_1 | xx.x | xx.x | xx.x |
| label_2 | xx.x | xx.x | xx.x |
| label_3 | xx.x | xx.x | xx.x |
We can pass this through tfrmt_to_json to convert to
JSON metadata.
template_tfrmt %>%
tfrmt_to_json()
#> {
#> "group": ["grp"],
#> "label": ["label"],
#> "param": ["param"],
#> "value": ["value"],
#> "column": ["column"],
#> "body_plan": [
#> {
#> "group_val": [".default"],
#> "label_val": [".default"],
#> "param_val": [".default"],
#> "frmt": {
#> "expression": ["xx.x"],
#> "missing": {},
#> "scientific": {},
#> "transform": {}
#> }
#> }
#> ]
#> }This JSON can optionally be saved to a file by providing
a file path as the second argument to the function:
tfrmt(
group = grp,
label = label,
column = column,
param = param,
value=value,
body_plan = body_plan(
frmt_structure(group_val = ".default",
label_val = ".default",
frmt("xx.x")))
) %>%
tfrmt_to_json(path = "template.JSON")JSON to tfrmt
If a JSON file already exists, users can import this
into R.
template_json <- json_to_tfrmt(path = "template.JSON")Once available in the R session, users can optionally build on this template as needed.
template_json %>%
layer_tfrmt(
tfrmt(title = "Custom title")
) %>%
print_mock_gt()| Custom title | |||
| column1 | column2 | column3 | |
|---|---|---|---|
| grp_1 | |||
| label_1 | xx.x | xx.x | xx.x |
| label_2 | xx.x | xx.x | xx.x |
| label_3 | xx.x | xx.x | xx.x |
| grp_2 | |||
| label_1 | xx.x | xx.x | xx.x |
| label_2 | xx.x | xx.x | xx.x |
| label_3 | xx.x | xx.x | xx.x |
| grp_3 | |||
| label_1 | xx.x | xx.x | xx.x |
| label_2 | xx.x | xx.x | xx.x |
| label_3 | xx.x | xx.x | xx.x |