The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Comparison to jsonlite parsing

library(yyjsonr)

Parsing differences compared to {jsonlite}

{jsonlite} and {yyjsonr} may read and write some JSON differently due to varying assumptions, data configurations or option settings.

This document keeps a record of major differences to be aware of.

In yyjsonr 3-d arrays are parsed as multiple 2-d matrices and combined

In {yyjsonr} the order in which elements in an array are serialized to JSON correspond to a JSON [] array of row-major matrices in human-readable order.

{jsonlite} does things differently.

The array formats are internally consistent within each package, but not cross-compatible between them i.e. you cannot serialize an array in {yyjsonr} and re-create it exactly using {jsonlite}.

In the examples below, a simple 3d matrix is serialized with both jsonlite and yyjsonr.

# A simple 3D array 
mat <- array(1:12, dim = c(2,3,2))
mat
#> , , 1
#> 
#>      [,1] [,2] [,3]
#> [1,]    1    3    5
#> [2,]    2    4    6
#> 
#> , , 2
#> 
#>      [,1] [,2] [,3]
#> [1,]    7    9   11
#> [2,]    8   10   12
# jsonlite's serialization of matrices is internally consistent and re-parses
# to the initial matrix.
str <- jsonlite::toJSON(mat, pretty = TRUE)
cat(str)
#> [
#>   [
#>     [1, 7],
#>     [3, 9],
#>     [5, 11]
#>   ],
#>   [
#>     [2, 8],
#>     [4, 10],
#>     [6, 12]
#>   ]
#> ]
jsonlite::fromJSON(str)
#> , , 1
#> 
#>      [,1] [,2] [,3]
#> [1,]    1    3    5
#> [2,]    2    4    6
#> 
#> , , 2
#> 
#>      [,1] [,2] [,3]
#> [1,]    7    9   11
#> [2,]    8   10   12
# yyjsonr's serialization of matrices is internally consistent and re-parses
# to the initial matrix.
# But note that it is *different* to what jsonlite does.
str <- yyjsonr::write_json_str(mat, pretty = TRUE)
cat(str)
#> [
#>   [
#>     [
#>       1,
#>       3,
#>       5
#>     ],
#>     [
#>       2,
#>       4,
#>       6
#>     ]
#>   ],
#>   [
#>     [
#>       7,
#>       9,
#>       11
#>     ],
#>     [
#>       8,
#>       10,
#>       12
#>     ]
#>   ]
#> ]
yyjsonr::read_json_str(str)
#> , , 1
#> 
#>      [,1] [,2] [,3]
#> [1,]    1    3    5
#> [2,]    2    4    6
#> 
#> , , 2
#> 
#>      [,1] [,2] [,3]
#> [1,]    7    9   11
#> [2,]    8   10   12

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.