25 lines
716 B
R
25 lines
716 B
R
fill_template <- function(x, template, prefix = "Payload#") {
|
|
for (i in seq_along(template)) {
|
|
temp_slice <- template[[i]]
|
|
if (is.list(temp_slice)) {
|
|
template[[i]] <- fill_template(x, temp_slice, prefix)
|
|
} else {
|
|
temp_slice <- paste0(prefix, temp_slice)
|
|
template[[i]] <- x[match(temp_slice, x)]
|
|
}
|
|
}
|
|
return(template)
|
|
}
|
|
|
|
library("jsonlite") # for printing the template and result
|
|
template <- list(list(c(1, 2), c(3, 4), 5))
|
|
payload <- paste0("Payload#", 0:6)
|
|
result <- fill_template(payload, template)
|
|
|
|
cat(sprintf(
|
|
"Template\t%s\nPayload\t%s\nResult\t%s",
|
|
toJSON(template, auto_unbox = TRUE),
|
|
toJSON(payload, auto_unbox = TRUE),
|
|
toJSON(result, auto_unbox = TRUE)
|
|
))
|