【发布时间】:2015-09-01 22:43:06
【问题描述】:
我正在尝试使用 R 将 SQL 表转换为 JSON 嵌套格式。我可以轻松地将表导入 R。现在的问题是获取 JSON 格式的所有父子关系。我已经设法拥有某种 JSON 输出,但仅以以下形式列出所有具有各自孩子的父母个人:(我将仅列出表格的前 6 行)
[
[
{
"name": ["a"],
"children": ["b"]
},
{
"name": ["b"],
"children": ["c"]
},
{
"name": ["c"],
"children": ["d"]
},
{
"name": ["b"],
"children": ["e"]
},
{
"name": ["e"],
"children": ["f"]
}
]
]
与
library(RJSONIO)
orgTable=orgTable[,c("Manager","ID")]
makeList<-function(x){
if(ncol(x)>2){
listSplit = split(x[-1],x[1],drop=T)
lapply(names(listSplit),function(y){list(name=y,children=makeList(listSplit[[y]]))})
}
else{
lapply(seq(nrow(x[1])),function(y){list(name=x[,1][y],children=x[,2][y])})
}
}
jsonOut = toJSON(list(makeList(orgTable[2:6,])),pretty=TRUE)
cat(jsonOut)
SQL 表是:
Parent Children
a b
b c
c d
b e
e f
我想要得到的会是这样的:
{
"name": "a",
"children": [
{
"name": "b",
"children": [
{
"name": "c",
"children": [
{
"name": "d"
}
]
},
{
"name": "e",
"children": [
{
"name": "f"
}
]
}
]
}
]
}
有人可以帮忙吗?如果可能的话,如果我还可以添加第三列中的信息将是完美的。
我提供的代码来自this post,但根据我的需要进行了微调。 我还是 R 的新手,所以请多多包涵。
提前致谢
【问题讨论】: