在 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"] }
}
我是 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\"]}"]
...现在我完全迷路了。
试图理解:
这展示了您要实现的目标。没有更多代码,我不知道这是否能解决您的问题。
body <- list()
innerBody <- list()
innerBody$a <- "A"
innerBody$b <- "B"
body$c <- innerBody
jsonlite::toJSON(body, pretty = TRUE)
{ "c": { "a": ["A"], "b": ["B"] } }