Nothing
###############################################################################@
#' Read a data model from JSON
#'
#' @param txt a JSON string, URL or file
#'
#' @example inst/examples/ex_read_json.R
#'
#' @export
#'
read_json_data_model <- function(txt){
mfj <- jsonlite::fromJSON(txt, simplifyVector=FALSE)
lapply(
mfj,
function(x){
## table name ----
x$tableName <- unlist(x$tableName)
## fields ----
if(length(x$fields)>0){
x$fields <- do.call(rbind, lapply(x$fields, dplyr::as_tibble)) %>%
dplyr::mutate(
name=as.character(.data$name),
type=as.character(.data$type),
nullable=as.logical(.data$nullable),
unique=as.logical(.data$unique),
comment=as.character(.data$comment)
)
}else{
x$fields <- dplyr::tibble(
name=character(),
type=character(),
nullable=logical(),
unique=logical(),
comment=character()
)
}
## primary key ----
x$primaryKey <- as.character(x$primaryKey)
## foreign keys ----
x$foreignKeys <- lapply(
x$foreignKeys,
function(y){
y$refTable <- unlist(y$refTable)
y$key <- do.call(rbind, lapply(y$key, dplyr::as_tibble))
y$cardinality <- as.integer(unlist(y$cardinality))
names(y$cardinality) <- c("fmin", "fmax", "tmin", "tmax")
return(y)
}
)
## indexes ----
x$indexes <- lapply(
x$indexes,
function(y){
y$fields <- unlist(y$fields)
y$unique <- unlist(y$unique)
return(y)
}
)
## display ----
x$display <- lapply(x$display, function(y){
y <- unlist(y)
ifelse(y=="NA", NA, y)
})
x$display$x <- as.numeric(x$display$x)
x$display$y <- as.numeric(x$display$y)
x$display$color <- as.character(x$display$color)
x$display$comment <- as.character(x$display$comment)
do.call(RelTableModel, x)
}
) %>% RelDataModel()
}
###############################################################################@
#' Write a data model in a JSON file
#'
#' @param x the model to be written
#' @param path file on disk
#'
#' @export
#'
write_json_data_model <- function(x, path){
jsonlite::write_json(x, path=path, na="string", pretty=TRUE)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.