Description Usage Arguments Path-like identifiers Author(s) References See Also Examples
Retrieves value from a nested object structure based on a path-like
input
with the last ID component being the actual object name that contains
the value.
1 | fromJson(input, where = parent.frame(), strict = FALSE, ...)
|
input |
Signature argument. Object containing JSON input. |
where |
Signature argument. Object containing location information. |
strict |
|
Further |
arguments passed along to subsequent functions.
In particular:
|
Values for id
are expected to be of structure a/b/c/.../z
,
i.e. path-like identifiers using a slash as separator.
The identifier is transformed to a$b$c$...$z
and then in turn to a
valid get or assign
expression
(i.e. a$b$c$...$z
and a$b$c$...$z <- value
).
Of course, "atomic" paths (e.g. only a
) are also valid.
Janko Thyson janko.thyson@rappster.de
http://github.com/Rappster/nestr
fromJson-char-env-method,
setNested,
rmNested
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | ## Not run:
##------------------------------------------------------------------------------
## data frame/simple/from file/parent frame //
##------------------------------------------------------------------------------
rm(list = ls(all.names = TRUE), envir = environment())
input <- jsonlite::toJSON(mtcars, pretty = TRUE)
input
res <- fromJson(input = input)
all(colnames(input) %in% ls(res))
identical(as.numeric(am), mtcars$am)
##------------------------------------------------------------------------------
## data frame/simple/from URL/parent frame //
##------------------------------------------------------------------------------
rm(list = ls(all.names = TRUE), envir = environment())
input <- "https://api.github.com/users/hadley/orgs"
tmp <- jsonlite::fromJSON(input)
res <- fromJson(input = input)
all(colnames(tmp) %in% ls(res))
avatar_url
##------------------------------------------------------------------------------
## data frame/simple/from URL/custom environment //
##------------------------------------------------------------------------------
input <- "https://api.github.com/users/hadley/orgs"
tmp <- jsonlite::fromJSON(input)
where <- fromJson(input = input, where = new.env())
all(colnames(tmp) %in% ls(where)))
where$avatar_url
##------------------------------------------------------------------------------
## data frame/nested/from URL/parent frame //
##------------------------------------------------------------------------------
rm(list = ls(all.names = TRUE), envir = environment())
input <- "https://api.github.com/users/hadley/repos"
tmp <- jsonlite::fromJSON(input)
res <- fromJson(input = input)
all(colnames(tmp) %in% ls(res))
id
owner
##------------------------------------------------------------------------------
## data frame/nested but flattened/from URL/parent frame //
##------------------------------------------------------------------------------
rm(list = ls(all.names = TRUE), envir = environment())
input <- "https://api.github.com/users/hadley/repos"
tmp <- jsonlite::fromJSON(input, flatten = TRUE)
colnames(tmp)
res <- fromJson(input = input, flatten = TRUE)
all(colnames(tmp) %in% ls(res))
owner.type
id
##------------------------------------------------------------------------------
## list/simple nesting/from URL/parent frame //
##------------------------------------------------------------------------------
rm(list = ls(all.names = TRUE), envir = environment())
input <- "https://api.github.com/users/hadley/orgs"
res <- fromJson(input = input, simplifyDataFrame = FALSE)
all(paste0("[", 1:6, "]") %in% ls(res))
environment()[["[1]"]]$avatar_url
##------------------------------------------------------------------------------
## list/complex nesting/from URL/parent frame //
##------------------------------------------------------------------------------
rm(list = ls(all.names = TRUE), envir = environment())
input <- "https://api.github.com/users/hadley/repos"
tmp <- jsonlite::fromJSON(input)
res <- fromJson(input = input, simplifyDataFrame = FALSE)
all(paste0("[", 1:30, "]") %in% ls(res)))
environment()[["[1]"]]$owner
environment()[["[1]"]]$owner$type
##------------------------------------------------------------------------------
## list/simple nesting/from URL/custom environment //
##------------------------------------------------------------------------------
input <- "https://api.github.com/users/hadley/orgs"
where <- fromJson(input = input, where = new.env(), simplifyDataFrame = FALSE)
all(paste0("[", 1:3, "]") %in% ls(where))
where[["[1]"]]$avatar_url
##------------------------------------------------------------------------------
## list/complex nesting/from URL/custom environment //
##------------------------------------------------------------------------------
input <- "https://api.github.com/users/hadley/repos"
where <- fromJson(input = input, where = new.env(), simplifyDataFrame = FALSE)
all(paste0("[", 1:30, "]") %in% ls(where))
where[["[1]"]]$owner
where[["[1]"]]$owner$type
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.