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

时间:2018-08-02 16:14:26

标签: r httr jsonlite

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

问题在于创建嵌套字典

我能够创建:

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

我想要什么:

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

目标/最终代码...

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 ) ) 

给出错误: 无法将类别““ 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 \“]}”]


...现在我完全迷失了自己。

试图了解: POST encripted request with JSON body on R 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

1 个答案:

答案 0 :(得分:2)

这说明了您正在尝试实现的目标。没有更多的代码,我不知道这是否可以解决您的问题。

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

{“ c”:{       “ a”:[“ A”],       “ b”:[“ B”]}   }