避免对值为 1 的向量进行拆箱

问题描述

对于我希望将数据推送到的 API,我需要避免对特定值进行拆箱。

考虑以下输入:

library(jsonlite)

lsA <- list(propertyName = "listA",Values = c("x"))

lsB <- list(propertyName = "listB",Values = c("a","b","c"))

lsC <- list(propertyName = "listC",min = 1,max = 3)

我希望我的输出是这样的:

[
  {
    "propertyName": "listA","Values": ["x"]
  },{
    "propertyName": "listB","Values": ["a","c"]
  },{
    "propertyName": "listC","min": 1,"max": 3
  }
] 

但是,当我这样做时:

lsTest <- list()
lsTest <- list.append(lsTest,I(lsA),lsB,lsC)

jsonTest <- jsonlite::toJSON(lsTest,auto_unBox = TRUE,pretty = TRUE)
jsonTest

我得到了这个(注意 listA 的未装箱值):

[
  {
    "propertyName": "listA","Values": "x"
  },"max": 3
  }
]

如何避免在 toJSON 转换期间对特定的单元素向量进行拆箱?

EDIT:cwthom 很好地解决了它。只需将 c("x") 更改为 list("x")。它也适用于包含多个项目的列表,并且只添加了一些额外的新行,这些行看起来只是装饰品,对我的最终结果没有任何负面影响。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)