删除使用toJSON创建的双引号json
我使用函数删除使用toJSON创建的双引号json,json,r,jsonlite,Json,R,Jsonlite,我使用函数toJSON创建一个json: data<-toJSON(list("tablename"= unbox("test.csv"), "header" = header_df, "data" = test1 )) 问题在于,它为PassengerID和Age数字添加了双引号。如果我手动将JSON修改为: data<-'{"tablename":"test.csv","header":["Passenge
toJSON
创建一个json:
data<-toJSON(list("tablename"= unbox("test.csv"),
"header" = header_df,
"data" = test1
))
问题在于,它为PassengerID
和Age
数字添加了双引号。如果我手动将JSON修改为:
data<-'{"tablename":"test.csv","header":["PassengerId","Pclass","Name","Sex","Age","SibSp","Parch","Ticket","Fare","Cabin","Embarked"],"data":[[892,"3","Kelly, Mr. James","male",34.5,"0","0","330911","7.8292","","Q"]]}'
data问题的一部分在于,当您使用.matrix时,丢失了正确的数据类;将所有内容转换为字符值。然后R不再记得什么是数字。最好避免这一步
要获得所需的结果,需要一个未命名、未装箱的混合类型列表。下面是一个关于您的数据的示例
test <- read.csv("~/../Downloads/test.csv", stringsAsFactors=F)
header_df<-names(test)
test<-test[1,]
library(jsonlite)
data<-toJSON(list("tablename"= unbox("test.csv"),
"header" = header_df,
"data" = Map(unbox, unname(as.list(test)))
))
data
# {"tablename":"test.csv","header":["PassengerId","Pclass","Name","Sex","Age","SibSp","Parch","Ticket","Fare","Cabin","Embarked"],"data":[892,3,"Kelly, Mr. James","male",34.5,0,0,"330911",7.8292,"","Q"]}
请提供示例输入数据,以传递给toJSON()
,以便进行示例。我更新了问题,您现在将获得此信息,感谢您解决了我的数据分类问题,但我创建了矩阵,因为我需要在数据之后添加此双[[
,因为我有多个记录。数据”:[[
…否则,我调用的服务不接受我的json。我添加了一个新示例,在这种情况下应该可以使用。
test <- read.csv("~/Titanic R/test.csv")
header_df<-names(test)
test<-test[1,]
test1<-as.matrix(test)
test <- read.csv("~/../Downloads/test.csv", stringsAsFactors=F)
header_df<-names(test)
test<-test[1,]
library(jsonlite)
data<-toJSON(list("tablename"= unbox("test.csv"),
"header" = header_df,
"data" = Map(unbox, unname(as.list(test)))
))
data
# {"tablename":"test.csv","header":["PassengerId","Pclass","Name","Sex","Age","SibSp","Parch","Ticket","Fare","Cabin","Embarked"],"data":[892,3,"Kelly, Mr. James","male",34.5,0,0,"330911",7.8292,"","Q"]}
test <- read.csv("~/../Downloads/test.csv", stringsAsFactors=F)
header_df<-names(test)
library(magrittr)
tomixedlist <- . %>% unname %>% lapply(unbox)
dx <- split(test, 1:nrow(test)) %>% lapply(tomixedlist) %>% unname
library(jsonlite)
data<-toJSON(list("tablename"= unbox("test.csv"),
"header" = header_df,
"data" = dx
))