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)
A character string.
The jsonlite package provides a full JSON serializer.
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;}
#> }