我正在使用的 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
第三列是列表的位置:
> 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
它将如何运作?