Я преобразую вложенный список определенной структуры (требуется API) в JSON, используя toJSON () в jsonlite. Однако мне нужно, чтобы окончательный JSON не содержал внешних квадратных скобок (также требуется API).
test_list <- list(
list(formName = "test_title", user_id = "test_userid", rows = list(list(row = 0))),
list(formName = "test_title2", user_id = "test_userid2", rows = list(list(row = 0)))
)
jsonlite::toJSON(test_list, pretty = TRUE, auto_unbox = TRUE)
Что дает:
[
{
"formName": "test_title",
"user_id": "test_userid",
"rows": [
{
"row": 0
}
]
},
{
"formName": "test_title2",
"user_id": "test_userid2",
"rows": [
{
"row": 0
}
]
}
]
Но мне нужно убрать первую и последнюю квадратную скобку.
Я могу использовать purrr :: flatten (), чтобы удалить верхний уровень списка и, следовательно, квадратные скобки в JSON, но тогда toJSON () не похоже, что список имеет повторяющиеся имена, и переименовывает их на name.1, name.2, name.3 и т. д. (что также не разрешено API).
То есть:
jsonlite::toJSON(test_list %>% purrr::flatten(), pretty = TRUE, auto_unbox = TRUE)
, который удаляет внешние квадратные скобки, но преобразует имена во втором элементе в formName.1, user_id.1, row.1, например, так:
{
"formName": "test_title",
"user_id": "test_userid",
"rows": [
{
"row": 0
}
],
"formName.1": "test_title2",
"user_id.1": "test_userid2",
"rows.1": [
{
"row": 0
}
]
}
Но это то, что мне нужно:
{
"formName": "test_title",
"user_id": "test_userid",
"rows": [
{
"row": 0
}
],
"formName": "test_title2",
"user_id": "test_userid2",
"rows": [
{
"row": 0
}
]
}
То есть formName, user_ud и строки во втором элементе JSON не добавляются с помощью ".1"
Любой совет будет с благодарностью!