一个简单的问题 - 我想在R中将列表转换为JSON。 让我们说这是我的清单:
listtest = list(
list(section_id = NULL, name = 'name1', slug = 'slug1'),
list(section_id = NULL, name = 'name2', slug = 'slug2'),
list(section_id = NULL, name = 'name3', slug = 'slug3', categories =
list(
list(section_id = NULL, name = 'name31', slug = 'slug31'),
list(section_id = NULL, name = 'name32', slug = 'slug32')
)
)
)
所以我用一个简单的
jsontest = toJSON(listtest, pretty = TRUE, auto_unbox = TRUE)
然后我得到一个像这样的JSON:
[
{
"section_id": {},
"name": "name1",
"slug": "slug1"
},
{
"section_id": {},
"name": "name2",
"slug": "slug2"
},
{
"section_id": {},
"name": "name3",
"slug": "slug3",
"categories": [
{
"section_id": {},
"name": "name31",
"slug": "slug31"
},
{
"section_id": {},
"name": "name32",
"slug": "slug32"
}
]
}
]
然而,在代码的开头和结尾,我得到了' ['和']'。我怎么能摆脱这个?上传到mongoDB时,它给了我一个错误,而没有括号它可以正常工作。
答案 0 :(得分:3)
使用gsub()
jsontest <- gsub(pattern = '^\[', replacement = "", x = jsontest)
jsontest <- gsub(pattern = '\]$', replacement = "", x = jsontest)
结果:
{
"section_id": {},
"name": "name1",
"slug": "slug1"
},
{
"section_id": {},
"name": "name2",
"slug": "slug2"
},
{
"section_id": {},
"name": "name3",
"slug": "slug3",
"categories": [
{
"section_id": {},
"name": "name31",
"slug": "slug31"
},
{
"section_id": {},
"name": "name32",
"slug": "slug32"
}
]
}
仍然是json
课程:
> class(jsontest)
[1] "json"
但也许空白可能会引起一些麻烦。
答案 1 :(得分:1)
使用mongolite包你应该能够简单地使用insert()函数将它直接插入到集合中。