New features in jsonlite 0.9.14
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
The jsonlite package implements a robust, high performance JSON parser and generator for R, optimized for statistical data and the web. This week version 0.9.14 appeared on CRAN which adds some handy new features.
Significant Digits
By default, the digits
argument in toJSON
specifies the number of decimal digits to print:
toJSON(pi, digits=3) # [3.142]
A feature requested by Winston Chang was to control precision of number formatting. You can now specify the number of significant digits, analogous to the signif
function in base R. Either set signif = TRUE
or specify the digits
argument using I()
:
> toJSON(pi, digits = 3, use_signif = TRUE) # [3.14] toJSON(pi, digits = I(3)) # [3.14]
Prettify Indent
A feature requested by Yihui Xie was to control the number of spaces to indent prettified json. The default is still 4 spaces:
toJSON(pi, pretty = TRUE) # [ # 3.1416 # ]
The number of indent spaces can be changed by setting the pretty
argument to an integer. For example to indent by only 2 spaces:
toJSON(pi, pretty = 2) # [ # 3.1416 # ]
Support for 64bit integers in toJSON
Another new feature is support for 64bit integers from the bit64
package. R does not support 64 bit integers by default, and doubles have limited precision:
x <- 2^60 + 1:3 toJSON(x) # [1.15292150460685e+18,1.15292150460685e+18,1.15292150460685e+18]
But when the number is stored as 64 bit integer, jsonlite will print the full integer in the JSON output:
library(bit64) x <- as.integer64(2)^60 + 1:3 toJSON(x) # [1152921504606846977,1152921504606846978,1152921504606846979]
Currently this is only supported in toJSON
. The parser in fromJSON
still uses doubles for very large integers.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.