Convert an rtemis S7 object to a named list suitable for
jsonlite::toJSON(auto_unbox = TRUE). Used by the rtemislive backend
to send structured results to the browser frontend without scraping
R console output.
Details
The output carries only what the object's schema declares. Every results
schema is additionalProperties: false, so a key the schema does not name
makes the document invalid against the contract it is published under.
The default method walks the class's published properties (see
prop_published()), recursing into S7-typed properties and passing through
primitive properties as-is. A computed view or an R-only value is omitted:
the first is recoverable from what is published, and the second has no wire
form at all, so emitting either would put a value on the wire that no schema
declares. Per-class methods override where the default isn't appropriate
(e.g. where some props should be excluded for size or relevance reasons).
Examples
to_json(check_data(iris))#> $object_class
#> [1] "data.frame"
#>
#> $name
#> [1] "iris"
#>
#> $n_rows
#> [1] 150
#>
#> $n_cols
#> [1] 5
#>
#> $n_numeric
#> [1] 4
#>
#> $n_integer
#> [1] 0
#>
#> $n_character
#> [1] 0
#>
#> $n_factor
#> [1] 1
#>
#> $n_ordered
#> [1] 0
#>
#> $n_date
#> [1] 0
#>
#> $n_constant
#> [1] 0
#>
#> $n_duplicates
#> [1] 1
#>
#> $n_cols_anyna
#> [1] 0
#>
#> $n_na
#> [1] 0
#>
#> $n_distinct_per_col
#> Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> 35 23 43 22 3
#>
#> $classes_na
#> NULL
#>
#> $na_feature_pct
#> NULL
#>
#> $na_case_pct
#> NULL
#>
#> $n_na_last_col
#> [1] 0
#>