R 如何";名称“;每个JSON对象
我相信这是一件相当简单的事情,但我无法理解 我在R中有一个数据帧,如下所示:R 如何";名称“;每个JSON对象,r,json,object,jsonlite,R,Json,Object,Jsonlite,我相信这是一件相当简单的事情,但我无法理解 我在R中有一个数据帧,如下所示: a b c 1 9 J 2 5 K 当我使用toJSON并将数据帧作为命名列表传递时 val <- toJSON(list( table = df), pretty = TRUE) lst <- list( list(a = 1, b = 9, c = "J") ) attr( lst, "names" ) <- "entry" toJSON( lst, auto_unb
a b c
1 9 J
2 5 K
当我使用toJSON并将数据帧作为命名列表传递时
val <- toJSON(list( table = df), pretty = TRUE)
lst <- list( list(a = 1, b = 9, c = "J") )
attr( lst, "names" ) <- "entry"
toJSON( lst, auto_unbox = TRUE )
# {"entry":{"a":1,"b":9,"c":"J"}}
res <- lapply( seq_len( nrow( df ) ), function(i) {
lst <- list( as.list( df[i, , drop = F] ) )
attr( lst, "names" ) <- "entry"
lst
})
## add the 'table'
res <- list( table = res )
toJSON( res, auto_unbox = TRUE, pretty = TRUE )
# {
# "table": [
# {
# "entry": {
# "a": 1,
# "b": 9,
# "c": "J"
# }
# },
# {
# "entry": {
# "a": 2,
# "b": 5,
# "c": "K"
# }
# }
# ]
# }
如何将每个JSON对象命名为“entry”,如下所示:
{ "table":[
{
"entry":{
"a":"1",
"b":"9",
"c":"J"
}
},
{
"entry":{
"a":"2",
"b":"5",
"c":"K"
}
}
]
}
要获得所需的结构有点复杂,因为
{“entry”:{“a”:1,“b”:9,“c”:“J”}
对象
要获得此结构,需要有一个命名列表
val <- toJSON(list( table = df), pretty = TRUE)
lst <- list( list(a = 1, b = 9, c = "J") )
attr( lst, "names" ) <- "entry"
toJSON( lst, auto_unbox = TRUE )
# {"entry":{"a":1,"b":9,"c":"J"}}
res <- lapply( seq_len( nrow( df ) ), function(i) {
lst <- list( as.list( df[i, , drop = F] ) )
attr( lst, "names" ) <- "entry"
lst
})
## add the 'table'
res <- list( table = res )
toJSON( res, auto_unbox = TRUE, pretty = TRUE )
# {
# "table": [
# {
# "entry": {
# "a": 1,
# "b": 9,
# "c": "J"
# }
# },
# {
# "entry": {
# "a": 2,
# "b": 5,
# "c": "K"
# }
# }
# ]
# }
lst TrytoJSON(list(table=list(entry=df)),pretty=TRUE)
谢谢,但这只会向第一个对象添加条目。“”{“table”:[{“entry”:{“a”:“1”、“b”:“9”、“c”:“J”、}}、{{“a”:“2”、“b”:“5”、“c”:“K”、}}}]}@akrun接近但不完全正确;data.frame的每一行都需要转换为命名列表