A JSON serializer that only works on a limited types of R data (NULL, lists, logical scalars, character/numeric vectors). A character string of the class JS_EVAL is treated as raw JavaScript, so will not be quoted. The function json_vector() converts an atomic R vector to JSON.

tojson(x)

json_vector(x, to_array = FALSE, quote = TRUE)

Arguments

x

An R object.

to_array

Whether to convert a vector to a JSON array (use []).

quote

Whether to double quote the elements.

Value

A character string.

See also

The jsonlite package provides a full JSON serializer.

Examples

library(xfun)
tojson(NULL)
#> [1] "null"
tojson(1:10)
#> [1] "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"
tojson(TRUE)
#> [1] "true"
tojson(FALSE)
#> [1] "false"
cat(tojson(list(a = 1, b = list(c = 1:3, d = "abc"))))
#> {
#> "a": 1,
#> "b": {
#> "c": [1, 2, 3],
#> "d": "abc"
#> }
#> }
cat(tojson(list(c("a", "b"), 1:5, TRUE)))
#> [["a", "b"], [1, 2, 3, 4, 5], true]

# the class JS_EVAL is originally from htmlwidgets::JS()
JS = function(x) structure(x, class = "JS_EVAL")
cat(tojson(list(a = 1:5, b = JS("function() {return true;}"))))
#> {
#> "a": [1, 2, 3, 4, 5],
#> "b": function() {return true;}
#> }