json_schema | R Documentation |
Returns a JSON document that captures the 'schema' of the collection of document(s) passed in, as a JSON string. The schema collapses complex JSON into a simple form using the following rules:
json_schema(.x, type = c("string", "value"))
.x |
a json string or |
type |
whether to capture scalar nodes using the string that defines their type (e.g., "logical") or as a representative value (e.g., "true") |
string -> "string", e.g., "a sentence" -> "string"
number -> "number", e.g., 32000.1 -> "number"
true -> "logical", e.g., true -> "logical"
false -> "logical", e.g., false -> "logical"
null -> "null", e.g., null -> "null"
array -> [<type>] e.g., [1, 2] -> ["number"]
object -> "name": <type> e.g., "age": 32 -> "age": "number"
For more complex JSON objects, ties are broken by taking the most
complex example (using json_complexity
), and then by type
(using json_types
).
This means that if a name has varying schema across documents, the most complex schema will be chosen as being representative. Similarly, if the elements of an array vary in schema, the most complex element is chosen, and if arrays vary in schema across documents, the most complex is chosen.
Note that json_schema
can be slow for large JSON document collections,
you may want to sample your JSON collection first.
a character string JSON document that represents the schema of the collection
json_structure
to recursively structure all
documents into a single data frame
# A simple string '"string"' %>% json_schema %>% writeLines # A simple object '{"name": "value"}' %>% json_schema %>% writeLines # A more complex JSON array json <- '[{"a": 1}, [1, 2], "a", 1, true, null]' # Using type = 'string' (default) json %>% json_schema %>% writeLines # Using type = 'value' to show a representative value json %>% json_schema(type = "value") %>% writeLines # Schema of the first 5 github issues ## Not run: library(dplyr) issues %>% gather_array %>% slice(1:10) %>% json_schema(type = "value") %>% writeLines ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.