jq function

Execute a query with jq

Execute a query with jq

jq is meant to work with the high level interface in this package. jq also provides access to the low level interface in which you can use jq query strings just as you would on the command line. Output gets class of json, and pretty prints to the console for easier viewing. jqr doesn't do pretty printing.

jq(x, ...) ## S3 method for class 'jqr' jq(x, ...) ## S3 method for class 'character' jq(x, ..., flags = jq_flags()) ## S3 method for class 'json' jq(x, ..., flags = jq_flags()) ## S3 method for class 'connection' jq(x, ..., flags = jq_flags(), out = NULL)

Arguments

  • x: json object or character string with json data. this can be one or more valid json objects

  • ...: character specification of jq query. Each element in ...

    will be combined with " | ", which is convenient for long queries.

  • flags: See jq_flags

  • out: a filename, callback function, connection object to stream output. Set to NULL to buffer all output and return a character vector.

Examples

'{"a": 7}' %>% do(.a + 1) '[8,3,null,6]' %>% sortj x <- '[{"message": "hello", "name": "jenn"}, {"message": "world", "name": "beth"}]' jq(index(x)) jq('{"a": 7, "b": 4}', 'keys') jq('[8,3,null,6]', 'sort') # many json inputs jq(c("[123, 456]", "[77, 88, 99]", "[41]"), ".[]") # Stream from connection tmp <- tempfile() writeLines(c("[123, 456]", "[77, 88, 99]", "[41]"), tmp) jq(file(tmp), ".[]") ## Not run: # from a url x <- 'http://jeroen.github.io/data/diamonds.json' jq(url(x), ".[]") # from a file file <- file.path(tempdir(), "diamonds_nd.json") download.file(x, destfile = file) jq(file(file), ".carat") jq(file(file), "select(.carat > 1.5)") jq(file(file), 'select(.carat > 4 and .cut == "Fair")') ## End(Not run)

See Also

peek

  • Maintainer: Jeroen Ooms
  • License: MIT + file LICENSE
  • Last published: 2024-12-16