r-lib / vctrs

Generic programming with typed R vectors
https://vctrs.r-lib.org
Other
287 stars 66 forks source link

provide S3 method for jsonlite::toJSON #1316

Open maxheld83 opened 3 years ago

maxheld83 commented 3 years ago
jsonlite::toJSON(vctrs::new_vctr("foo"))

gives:

Error: No method asJSON S3 class: vctrs_vctr
This bubbles up in testthat snapshot testing, which default to jsonlite: ```r testthat::expect_snapshot_value(vctrs::new_vctr("foo")) ``` --- `sessioninfo::session_info()`: ``` ─ Session info ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── setting value version R version 4.0.3 (2020-10-10) os macOS 11.2 system x86_64, darwin17.0 ui X11 language en_US.UTF-8 git collate en_US.UTF-8 ctype en_US.UTF-8 tz Europe/Berlin date 2021-02-04 ─ Packages ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ! package * version date lib source assertthat 0.2.1 2019-03-21 [1] CRAN (R 4.0.2) backports 1.2.1 2020-12-09 [1] CRAN (R 4.0.2) P biblids * 0.0.0.9000 2021-02-01 [?] local cachem 1.0.1 2021-01-21 [1] CRAN (R 4.0.2) callr 3.5.1 2020-10-13 [1] CRAN (R 4.0.2) checkmate 2.0.0 2020-02-06 [1] CRAN (R 4.0.2) cli 2.2.0 2020-11-20 [1] CRAN (R 4.0.2) commonmark 1.7 2018-12-01 [1] CRAN (R 4.0.2) crayon 1.4.0 2021-01-30 [1] CRAN (R 4.0.2) curl 4.3 2019-12-02 [1] CRAN (R 4.0.1) desc 1.2.0 2018-05-01 [1] CRAN (R 4.0.2) devtools * 2.3.2 2020-09-18 [1] CRAN (R 4.0.2) diffobj 0.3.3 2021-01-07 [1] CRAN (R 4.0.2) digest 0.6.27 2020-10-24 [1] CRAN (R 4.0.2) ellipsis 0.3.1 2020-05-15 [1] CRAN (R 4.0.2) evaluate 0.14 2019-05-28 [1] CRAN (R 4.0.1) fansi 0.4.2 2021-01-15 [1] CRAN (R 4.0.2) fastmap 1.1.0 2021-01-25 [1] CRAN (R 4.0.2) fs 1.5.0 2020-07-31 [1] CRAN (R 4.0.2) glue 1.4.2 2020-08-27 [1] CRAN (R 4.0.2) htmltools 0.5.1.9000 2021-01-25 [1] Github (rstudio/htmltools@e7f0393) httpuv 1.5.5 2021-01-13 [1] CRAN (R 4.0.2) httr 1.4.2 2020-07-20 [1] CRAN (R 4.0.2) jsonlite 1.7.2 2020-12-09 [1] CRAN (R 4.0.2) knitr * 1.31 2021-01-27 [1] CRAN (R 4.0.2) later 1.1.0.1 2020-06-05 [1] CRAN (R 4.0.2) lifecycle 0.2.0 2020-03-06 [1] CRAN (R 4.0.2) magrittr 2.0.1 2020-11-17 [1] CRAN (R 4.0.2) memoise 2.0.0 2021-01-26 [1] CRAN (R 4.0.2) mime 0.9 2020-02-04 [1] CRAN (R 4.0.2) muggle * 0.1.1-20210126 2021-01-27 [1] Github (subugoe/muggle@594159f) pillar 1.4.7 2020-11-20 [1] CRAN (R 4.0.2) pkgbuild 1.2.0 2020-12-15 [1] CRAN (R 4.0.2) pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.0.2) pkgload 1.1.0 2020-05-29 [1] CRAN (R 4.0.2) prettyunits 1.1.1 2020-01-24 [1] CRAN (R 4.0.2) processx 3.4.5 2020-11-30 [1] CRAN (R 4.0.2) promises 1.1.1.9001 2021-02-02 [1] Github (rstudio/promises@b93a9f1) ps 1.5.0 2020-12-05 [1] CRAN (R 4.0.2) purrr 0.3.4 2020-04-17 [1] CRAN (R 4.0.2) R6 2.5.0 2020-10-28 [1] CRAN (R 4.0.2) Rcpp 1.0.6 2021-01-15 [1] CRAN (R 4.0.2) rematch2 2.1.2 2020-05-01 [1] CRAN (R 4.0.2) remotes 2.2.0 2020-07-21 [1] CRAN (R 4.0.2) rlang 0.4.10.9000 2021-02-02 [1] Github (r-lib/rlang@d15299e) roxygen2 7.1.1.9999 2021-01-27 [1] Github (maxheld83/roxygen@11180b9) rprojroot 2.0.2 2020-11-15 [1] CRAN (R 4.0.2) rstudioapi 0.13 2020-11-12 [1] CRAN (R 4.0.2) sessioninfo 1.1.1 2018-11-05 [1] CRAN (R 4.0.2) shiny 1.6.0.9000 2021-02-02 [1] Github (rstudio/shiny@c1878fe) stringi 1.5.3 2020-09-09 [1] CRAN (R 4.0.2) stringr 1.4.0 2019-02-10 [1] CRAN (R 4.0.2) testthat * 3.0.1 2020-12-17 [1] CRAN (R 4.0.2) tibble 3.0.6 2021-01-29 [1] CRAN (R 4.0.2) usethis * 2.0.0 2020-12-10 [1] CRAN (R 4.0.2) utf8 1.1.4 2018-05-24 [1] CRAN (R 4.0.2) vctrs 0.3.6 2020-12-17 [1] CRAN (R 4.0.2) waldo 0.2.3 2020-11-09 [1] CRAN (R 4.0.2) withr 2.4.1 2021-01-26 [1] CRAN (R 4.0.2) xfun 0.20 2021-01-06 [1] CRAN (R 4.0.2) xml2 1.3.2 2020-04-23 [1] CRAN (R 4.0.2) xtable 1.8-4 2019-04-21 [1] CRAN (R 4.0.2) [1] /Library/Frameworks/R.framework/Versions/4.0/Resources/library P ── Loaded and on-disk path mismatch. ```
hadley commented 3 years ago

Actual reprex:

jsonlite::toJSON(vctrs::new_vctr("foo"))
#> Error: No method asJSON S3 class: vctrs_vctr

Created on 2021-02-04 by the reprex package (v0.3.0.9001)

No need for session info here, since it should be clear that we simply haven't implemented this method.