Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(rjson)
- library(magrittr)
- library(data.table)
- library(plyr)
- library(dplyr)
- toJSON_byRow_1 = function(dat){
- dat %>% alply(1, identity) %>% unname %>% toJSON %>% cat
- }
- toJSON_byRow_2 = function(dat){
- dat %>% apply(1, function(x){
- x[sapply(x, class) == "character"] %<>% paste0("\"", ., "\"")
- x[sapply(x, class) == "factor"] %<>% paste0("\"", as.character(.), "\"")
- paste0(paste0("\"", names(x), "\":"), x) %>%
- paste(collapse = ",") %>% paste0("{", ., "}")
- }) %>% paste(.,collapse=",\n") %>%
- paste0("[", ., "]") %>% cat()
- }
- toJSON_byRow_3 = function(dat){
- check.numeric <- function(x){
- all(regexpr("^\\d*\\.?\\d*$", as.character(x)) > 0)
- }
- dat %<>% sapply(check.numeric) %>% which() %>%
- names() %>% paste0(., "=as.numeric(", ., ")") %>%
- {within(dat, eval(parse(text=.)))}
- dat %>% mutate(splitter = 1:nrow(.)) %>%
- plyr:::splitter_d(.(splitter)) %>% llply(select, -splitter) %>%
- llply(toJSON) %>% do.call(c, .) %>%
- paste0(collapse = ",\n") %>% paste0("[\n", ., "\n]\n") %>% cat()
- }
- jsonFile = "[{\"speed\":4,\"dist\":2,\"brand\":\"Audi\"},
- {\"speed\":4,\"dist\":10,\"brand\":\"Benz\"},
- {\"speed\":7,\"dist\":4,\"brand\":\"Audi\"},
- {\"speed\":7,\"dist\":22,\"brand\":\"Benz\"},
- {\"speed\":8,\"dist\":16,\"brand\":\"Benz\"}
- ]"
- dat = fromJSON(jsonFile) %>% unlist() %>% cbind(names(.)) %>%
- data.table() %>% setnames(paste0("X", 1:2)) %>%
- plyr:::splitter_d(.(X2)) %>% laply(function(x){
- x[,1]
- }) %>% t() %>% data.table()
- toJSON_byRow_1(dat)
- # [{"brand":"Audi","dist":"2","speed":"4"},{"brand":"Benz","dist":"10","speed":"4"},{"brand":"Audi","dist":"4","speed":"7"},{"brand":"Benz","dist":"22","speed":"7"},{"brand":"Benz","dist":"16","speed":"8"}]
- toJSON_byRow_2(dat)
- # [{"brand":"Audi","dist":"2","speed":"4"},
- # {"brand":"Benz","dist":"10","speed":"4"},
- # {"brand":"Audi","dist":"4","speed":"7"},
- # {"brand":"Benz","dist":"22","speed":"7"},
- # {"brand":"Benz","dist":"16","speed":"8"}]
- toJSON_byRow_3(dat)
- # [
- # {"brand":"Audi","dist":2,"speed":4},
- # {"brand":"Benz","dist":10,"speed":4},
- # {"brand":"Audi","dist":4,"speed":7},
- # {"brand":"Benz","dist":22,"speed":7},
- # {"brand":"Benz","dist":16,"speed":8}
- # ]
Advertisement
Add Comment
Please, Sign In to add comment