enter_object | R Documentation |
When manipulating a JSON object, enter_object
lets you navigate to
a specific value of the object by referencing it's name. JSON can contain
nested objects, and you can pass in more than one character string into
enter_object
to navigate through multiple objects simultaneously.
enter_object(.x, ...)
.x |
a json string or tbl_json object |
... |
a quoted or unquoted sequence of strings designating the object name or sequences of names you wish to enter |
After using enter_object
, all further tidyjson calls happen inside the
referenced object (all other JSON data outside the object is discarded).
If the object doesn't exist for a given row / index, then that row will be
discarded.
In pipelines, enter_object
is often preceded by gather_object
and followed by gather_array
if the value is an array, or
spread_all
if the value is an object.
a tbl_json
object
gather_object
to find sub-objects that could be
entered into, gather_array
to gather an array in an object
and spread_all
or spread_values
to spread values in an object.
# Let's start with a simple example of parents and children json <- c('{"parent": "bob", "children": ["sally", "george"]}', '{"parent": "fred", "children": ["billy"]}', '{"parent": "anne"}') # We can see the names and types in each json %>% gather_object %>% json_types # Let's capture the parent first and then enter in the children object json %>% spread_all %>% enter_object(children) # Also works with quotes json %>% spread_all %>% enter_object("children") # Notice that "anne" was discarded, as she has no children # We can now use gather array to stack the array json %>% spread_all %>% enter_object(children) %>% gather_array("child.num") # And append_values_string to add the children names json %>% spread_all %>% enter_object(children) %>% gather_array("child.num") %>% append_values_string("child") # The path can be comma delimited to go deep into a nested object json <- '{"name": "bob", "attributes": {"age": 32, "gender": "male"}}' json %>% enter_object(attributes, age) # A more realistc example with companies data library(dplyr) companies %>% enter_object(acquisitions) %>% gather_array %>% spread_all %>% glimpse
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.