使plumber.R直接在json中返回字符串,而不是在具有单个元素的列表中返回

当将字符串作为我的plumber.R响应的一部分时,它们总是封装在列表中,即使在列表中只有单个字符串而不是多个字符串的情况下,尤其如此。

我知道这就是R通常看起来如何处理字符串的方式,如下所示

>  list(response = "This is my text")
$response
[1] "This is my text"

但是我不确定如何在Plumber中操纵输出以在json响应中获取所需的格式。

我的代码

library("plumber")

#* returns a fixed string
#* @get /mytext
get_mytext <- function(req,res) {
  return(list(response = "This is my text"))
}

预期产量

{
  "response": "This is my text"
}

实际输出

{
  "response": [
    "This is my text"
  ]
}
Q24529999 回答:使plumber.R直接在json中返回字符串,而不是在具有单个元素的列表中返回

由于所有内容都是R中的向量,因此代码很难猜测应该将其转换为单个值还是JSON数组。当单个值存储在数组中时,这称为“装箱”。您可以通过更改用于端点的序列化程序来更改默认装箱行为。你可以做

'bytes' object has no attribute 'seek'

默认情况下“取消装箱”长度为1的向量。

或者,您可以在响应中明确取消装箱某些值

#* returns a fixed string
#* @serializer unboxedJSON
#* @get /mytext
get_mytext <- function(req,res) {
  return(list(response = "This is my text"))
}
本文链接:https://www.f2er.com/3165128.html

大家都在问