API, который я использую, требует, чтобы я отправил ему JSON
сообщение, например:
y <- '[{"a":1, "b":"select", "c":["A", "B", "C"]},
{"a":2, "b":"text"},
{"a":3, "b":"select", "c":["D", "E", "F", "G"]}]'
Обратите внимание, что в случае "b" : "select"
есть еще одна переменная c
со значением, являющимся массивом.
Когда я пытаюсь запустить fromJSON(y)
(в пакете jsonlite
), я получаю data.frame
, где 3-й столбец представляет собой список:
> z <- fromJSON(y)
> class(z)
[1] "data.frame"
> z %>% glimpse()
Observations: 3
Variables: 3
$ a (int) 1, 2, 3
$ b (chr) "select", "text", "select"
$ c (list) A, B, C, NULL, D, E, F, G
Но когда я конвертирую его обратно в JSON
(это формат, который я хочу отправить в API), переменная c
появляется там, где ее быть не должно.
[{"a":1,"b":"select","c":["A","B","C"]},
{"a":2,"b":"text","c":{}},
{"a":3,"b":"select","c":["D","E","F","G"]}]
Есть ли другая структура данных R, которая могла бы надежно вывести меня из фрейма данных в исходное сообщение JSON
, используя jsonlite
(или что-то еще)? Как это будет работать?
RJSONIO:fromJSON
, а затемjsonlite::toJSON
, вы получите то, что хотите. - person Martin Schmelzer   schedule 14.01.2016