我需要发送响应从R使用管道工包在下面的格式
{
"status": "SUCCESS",
"code": "200",
"output": {
"studentid": "1001",
"name": "Kevin"
}
}但是我的格式越来越低了
[
"{\n \"status\": \"SUCCESS\",\n \"code\": \"200\",\n \"output\": {\n \"studentid\": \"1001\",\n \"name\": \"Kevin\"\n }\n}"
]请帮助我正确地格式化这个json
我的代码
#* @post /sum
addTwo <- function(){
library(jsonlite)
x <- list(status = "SUCCESS", code = "200",output = list(studentid = "1001", name = "Kevin"))
output<-toJSON(x,pretty = TRUE, auto_unbox = TRUE)
return (output)
}发布于 2017-05-21 10:29:38
我在plumber的开发版本中添加了一个unboxedJSON序列化程序。根据将来何时读取,该序列化程序可能已经发布到CRAN,甚至可能是现在的默认序列化程序(我仍在争论)。
但是现在,您可以从GitHub (devtools::install_github("trestletech/plumber"))安装开发版本,然后将@serializer unboxedJSON注释添加到函数中,如下所示:
#* @post /sum
#* @serializer unboxedJSON
addTwo <- function(){
list(status = "SUCCESS", code = "200",output = list(studentid = "1001", name = "Kevin"))
}仅供参考,如果你想强制管道工返回你直接提供的一些文本,你应该能够在res上设置$body元素,然后从函数返回res对象。
#* @get /
function(res){
res$body <- "I am raw"
res
}它将在其响应中返回未格式化、未序列化的文本I am raw。
发布于 2017-07-09 19:37:04
只需删除toJSON()包装器即可。Plumber已经做了JSON序列化,所以你可以通过添加一个toJSON函数来做两次。
这应该是可行的。
addTwo <- function(){
x <- list(status = "SUCCESS", code = "200",output = list(studentid = "1001", name = "Kevin"))
return (x)
}https://stackoverflow.com/questions/42592738
复制相似问题