jdouble()
and jinteger()
. junmber()
is aliased to jdouble()
, and
can still be used, however jdouble()
should be preferred as it is less
ambiguous.Add tbl_json
methods for join to drop the tbl_json
class early. If you
need the ..JSON
column, ensure to save it with json_get_column()
before
joining.
Work around an issue with dplyr 1.0.0
and [
not subsetting properly with transmute
Please let us know if you run into any errors of the form
The `[` method for class <tbl_json/tbl_df/tbl/data.frame> must return a data frame with 1 column
We will need to do some more work on how we manage the ..JSON
column.
attr(., "JSON")
, the JSON object is now a hidden column
(..JSON
). To prevent future backwards incompatibilities of this nature, there
is now an "extractor" function to pull the raw JSON object off of the
tbl_json
: json_get()
. You can also use json_get_column()
to add the raw
json onto your tbl_json
as a dedicated column..JSON
column with dplyr::select()
will
mostly ignore you for complicated reasons. Use json_get_column()
if you want
to access the raw ..JSON
data.tidyjson
"magic", tibble::as_tibble()
will drop the tbl_json
class and you are back to normal!Address backwards incompatibilities in dplyr
Address backwards incompatibilities in vctrs
Remove tidyjson::bind_rows()
in favor of re-exporting dplyr::bind_rows()
Add a few generics to make behavior generally more consistent: $<-.tbl_json
, etc.
Add as_tbl_json
as a future replacement for as.tbl_json
Add as_tbl_json.list
so that you can more easily parse the JSON outside of
tbl_json
if you like. Further, this allows tbl_json
to work with any
arbitrary nested list. (#119)
bind_rows()
support. Though currently not an S3 implementation, it behaves as much like the dplyr
variant as possible, preserving the attr(.,'JSON')
components if all components are tbl_json
objects. (#58)"Using Multiple APIs" vignette added to show support for using tidyjson with multiple APIs (#85)
Updated README.md to better explain spread_all()
(#92)
Improve compatibility with newer dplyr
and tidyr
DROP=TRUE
caused an error. Altered behavior to be consistent with tbl_df
Fix spread_all(recursive=FALSE)
bug that caused an error (#65)
Alter spread_all()
behavior to recursively check for deduplication of names (and thus avoid an error) (#76)
Add named support for the NSE
versions of dplyr functions (filter()
,mutate()
,slice()
, etc.) since the SE
variants are no longer called behind-the-scenes since dplyr 0.6.0
. (#97)
Fix errors with print.tbl_json()
when the JSON attribute is missing
Fix json_structure() failure if document.id
missing by imputing
the missing document.id
. (#86)
json_complexity()
computes the "complexity" (recursively unlisted length) of JSON data (#5)
json_structure()
recursively structures arbitrary JSON data into a single data frame (#2)
json_schema()
creates a schema for a JSON document or collection (#12)
is_json
functions for testing JSON types, such as is_json_string()
, is_json_null()
or is_json_object()
(#39)
spread_all()
spreads all scalar values of a JSON object into new columns (#56)
as.character.tbl_json()
converts tbl_json
objects back into JSON character strings (#62)
gather_object()
replaces gather_keys()
, with default column.name
of name
instead of key
(#66). This more closely matches the JSON standard, which refers to objects as name-value pairs, and is now consistent with gather_array()
.
"Using Multiple APIs" vignette added to show support for using tidyjson with multiple APIs (#85)
Updated README.md to better explain spread_all()
(#92)
"Visualizing JSON" vignette for visualizing the structure of complex JSON data, like the companies
example (#4)
Significant updates to all documentation and examples for clarity (#42)
Updated "Introduction to tidyjson" vignette to be more concise and use new functionality (#74)
enter_object
and the jstring
, jnumber
and jlogical
functions now accept unquoted strings to specify their path (#26)
tbl_json
objects now print with a tidy character representation of the JSON attribute (#61)
Use tidyr for gather_array
and gather_object
functions (#28)
Imported the magrittr %>%
operator (#17)
Fixed dplyr::slice()
not working correctly with tbl_json
objects (#18)
First argument to verbs is .x
rather than x
to avoid name conflicts in NSE (#23)
Fixed spread_values()
to not coerce types (#24)
gather_array()
and gather_object()
can be called repeatedly in the same pipeline with the same column.name
argument, and will simply append an integer identifer to the new columns (#38)
gather_keys()
-> use gather_object()
instead