在 R 中为 httr::POST 创建嵌套的 Json 对象

Create Nested Json Obj in R for httr::POST

我是 R 的新手,正在尝试达到一个终点。我已经拿到令牌了。现在使用该令牌,我想到达端点并获取数据。

问题在于创建嵌套字典

我能够创建:

 {
    "a":["A"],
    "b":["B"]
 }

我想要的:

{
 "c": {
       "a":["A"],
       "b":["B"]
 }
}

Target/Final代码...

url <- "http:xxxx/xxxx/xxxx/xx?"
req <- httr::POST(url, body=body, httr::add_headers(Authorization = token))

在我尝试过的几件事中...

a<-c("A")
b<-c("B")
body<- jsonlite::toJSON(data.frame(a=a, b=b) ) 
body

输出:[{"a":"A","b":"B"}]

body2<- jsonlite::toJSON(data.frame(c=body ) ) 

报错: 无法将 class“"json"”强制转换为 data.frame

所以可能应该做这样的事情...

body2<- jsonlite::toJSON(data.frame(c=fromJSON(body) ) ) 
body2

但输出是... [{"c.a":"A","c.b":"B"}]


然后我试了...

json <- toJSON('{"a": ["A"],"b": ["B"]}') 
json
body<- jsonlite::toJSON(data.frame(c=fromJSON(json) ) )
body

输出:["{\"a\": [\"A\"],\"b\": [\"B\"]}"]


...现在我完全迷路了。

试图理解: Nested JSON to dataframe in R Convert Nested JSON Object into data Frame in R Import data from file contaning nested JSON objects in R

这展示了您要实现的目标。没有更多代码,我不知道这是否能解决您的问题。

body <- list()
innerBody <- list()
innerBody$a <- "A"
innerBody$b <- "B"
body$c <- innerBody
jsonlite::toJSON(body, pretty = TRUE)

{ "c": { "a": ["A"], "b": ["B"] } }