- Add
jdouble()
andjinteger()
.junmber()
is aliased tojdouble()
, and can still be used, howeverjdouble()
should be preferred as it is less ambiguous.
-
Add
tbl_json
methods for join to drop thetbl_json
class early. If you need the..JSON
column, ensure to save it withjson_get_column()
before joining. -
Work around an issue with
dplyr 1.0.0
and[
not subsetting properly withtransmute
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.
- Instead of
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 thetbl_json
:json_get()
. You can also usejson_get_column()
to add the raw json onto yourtbl_json
as a dedicated column - Related to this, selecting a
..JSON
column withdplyr::select()
will mostly ignore you for complicated reasons. Usejson_get_column()
if you want to access the raw..JSON
data. - As always, if you want to remove
tidyjson
"magic",tibble::as_tibble()
will drop thetbl_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-exportingdplyr::bind_rows()
-
Add a few generics to make behavior generally more consistent:
$<-.tbl_json
, etc. -
Add
as_tbl_json
as a future replacement foras.tbl_json
-
Add
as_tbl_json.list
so that you can more easily parse the JSON outside oftbl_json
if you like. Further, this allowstbl_json
to work with any arbitrary nested list. (#119)
- Add
bind_rows()
support. Though currently not an S3 implementation, it behaves as much like thedplyr
variant as possible, preserving theattr(.,'JSON')
components if all components aretbl_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
andtidyr
-
DROP=TRUE
caused an error. Altered behavior to be consistent withtbl_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 theSE
variants are no longer called behind-the-scenes sincedplyr 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 missingdocument.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 asis_json_string()
,is_json_null()
oris_json_object()
(#39) -
spread_all()
spreads all scalar values of a JSON object into new columns (#56) -
as.character.tbl_json()
convertstbl_json
objects back into JSON character strings (#62) -
gather_object()
replacesgather_keys()
, with defaultcolumn.name
ofname
instead ofkey
(#66). This more closely matches the JSON standard, which refers to objects as name-value pairs, and is now consistent withgather_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 thejstring
,jnumber
andjlogical
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 purrr for most list based internal operations (#1)
-
Use tidyr for
gather_array
andgather_object
functions (#28) -
Imported the magrittr
%>%
operator (#17) -
Fixed
dplyr::slice()
not working correctly withtbl_json
objects (#18) -
First argument to verbs is
.x
rather thanx
to avoid name conflicts in NSE (#23) -
Fixed
spread_values()
to not coerce types (#24) -
gather_array()
andgather_object()
can be called repeatedly in the same pipeline with the samecolumn.name
argument, and will simply append an integer identifer to the new columns (#38)
- Migrated development to colearendt from jeremystan and sailthru
gather_keys()
-> usegather_object()
instead