R数据帧到JSON对象数组

R dataframe to JSON array of objects

我有一个格式如下的 R 数据帧

id  code  value
1   A      3
2   B      5 
3   C      9

使用:

  toJSON(df)
  returns:
  [{id:1,code:A,value:3},...]

我想要的输出是:

[{1,A,3},{2,B,5}..]

使用

 df <- unname(df)
 returns an array of arrays, [[..],[..],...]]

我正在使用 jsonlite 包

正如@nicola 所说,您请求的内容 ([{1,A,3},{2,B,5},...]) 无效 JSON。我相信你能得到的最接近的(没有名字)是这样的:

df <- read.table(header=TRUE, stringsAsFactors=FALSE, text='id  code  value
1   A      3
2   B      5 
3   C      9')
library(jsonlite)

toJSON(lapply(seq.int(nrow(df)), function(i) unname(lapply(df, `[[`, i))),
       auto_unbox=TRUE)
# [[1,"A",3],[2,"B",5],[3,"C",9]] 

通常,jsonlite 喜欢将标量保留为一元向量,因此如果删除 auto_unbox=TRUE 分量,您将得到:

toJSON(lapply(seq.int(nrow(df)), function(i) unname(lapply(df, `[[`, i))))
# [[[1],["A"],[3]],[[2],["B"],[5]],[[3],["C"],[9]]] 

根据您使用此数据的方式,它们在功能上可能相同。 (我同意未装箱的实现更容易让人阅读。)

两种方法都保留列值的类型(数字、字符串)。