При использовании jsonlite в R, как мне указать, что только некоторые записи должны рассматриваться как массивы?
У меня есть следующий код:
# install.packages("jsonlite")
require("jsonlite")
x = list(
test = "my_test",
data = c(1, 2, 3)
)
toJSON(x)
Это печатает:
{"test":["my_test"],"data":[1,2,3]}
Я ожидал:
{"test":"my_test","data":[1,2,3]}
Я попытался использовать некоторые параметры из документации, но, похоже, не могу сделать это правильно.
1 ответ
Аргумент auto_unbox=TRUE
сделал трюк:
автоматически распаковывать все атомарные векторы длины 1. Обычно безопаснее избежать этого и вместо этого использовать функцию unbox, чтобы распаковать отдельные элементы. Исключением является то, что объекты класса AsIs (т.е. обернутые в I()) не распаковываются автоматически. Это способ пометить отдельные значения как массивы длины-1.
То есть решение было toJSON(x, auto_unbox=TRUE)
, который возвращает то, что я ожидал:
{"test":"my_test","data":[1,2,3]}