删除使用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
))