8

我正在尝试使用 jsonlite 包和 toJSON 函数将 R 列表编码为 json。我有一个简单的项目,例如:

list(op='abc')

我希望它变成:

{
  "op" : "abc"
}

相反,我得到:

{
  "op" : ["abc"]
}

我试图向后者提供此 json 的 API 会阻塞后者并需要前者。关于如何从 jsonlite (或另一个 R json 包)获得前一种行为的任何建议?

4

1 回答 1

8

auto_unbox参数对jsonlite包起作用:

toJSON(list(op='abc'),auto_unbox=TRUE)

产量:

{"op":"abc"}

更新:根据评论,这种方法可能更安全,并举例说明原因:

> jsonlite::toJSON(list(x=unbox(1),y=c(1,2)))
{"x":1,"y":[1,2]} 
> jsonlite::toJSON(list(x=unbox(1),y=unbox(c(1,2)))) # expect error here.
Error: Tried to unbox a vector of length 2
于 2016-07-10T03:15:04.323 回答