keys
takes no input, and retrieves keys. del
deletes
provided keys. haskey
checks if a json string has a key, or the
input array has an element at the given index.
Usage
keys(.data)
del(.data, ...)
del_(.data, ..., .dots)
haskey(.data, ...)
haskey_(.data, ..., .dots)
Arguments
- .data
input. This can be JSON input, or an object of class
jqr
that has JSON and query params combined, which is passed from function to function when using the jqr DSL.- ...
Comma separated list of unquoted variable names
- .dots
Used to work around non-standard evaluation
- dots
dots
Examples
# get keys
str <- '{"foo": 5, "bar": 7}'
jq(str, "keys")
#> [
#> "bar",
#> "foo"
#> ]
str %>% keys()
#> [
#> "bar",
#> "foo"
#> ]
# delete by key name
jq(str, "del(.bar)")
#> {
#> "foo": 5
#> }
str %>% del(bar)
#> {
#> "foo": 5
#> }
# check for key existence
str3 <- '[[0,1], ["a","b","c"]]'
jq(str3, "map(has(2))")
#> [
#> false,
#> true
#> ]
str3 %>% haskey(2)
#> [
#> false,
#> true
#> ]
jq(str3, "map(has(1,2))")
#> [
#> true,
#> false,
#> true,
#> true
#> ]
str3 %>% haskey(1,2)
#> [
#> true,
#> false,
#> true,
#> true
#> ]
## many JSON inputs
'{"foo": 5, "bar": 7} {"hello": 5, "world": 7}' %>% keys
#> [
#> [
#> "bar",
#> "foo"
#> ],
#> [
#> "hello",
#> "world"
#> ]
#> ]
'{"foo": 5, "bar": 7} {"hello": 5, "bar": 7}' %>% del(bar)
#> [
#> {
#> "foo": 5
#> },
#> {
#> "hello": 5
#> }
#> ]