output_goal <- '{ "firstName": "Tim", "lastName": "Jones", "team": { "value":104290, "teamMarket": "Card", "gender": "MALE" }}'

zed1 <- list(firstName = 'Tim', lastName = 'Jones', team = list(value = 104290, teamMarket = 'Card', gender = 'MALE'))
output <- jsonlite::toJSON(zed1)
output <- gsub('\\[', '', output)
output <- gsub('\\]', '', output)
output == output_goal
> FALSE


zed2 <- list(firstName = 'Tim', lastName = 'Jones', team = data.frame(value = 104290, teamMarket = 'Card', gender = 'MALE'))
output <- jsonlite::toJSON(zed2)
output <- gsub('\\[', '', output)
output <- gsub('\\]', '', output)
output == output_goal
> FALSE

我们的目标是将zed1zed2中的任何一个转换为字符串output_goal.到目前为止,我们已经try 使用jsonlite::toJSON,然后使用gSub来go 掉括号.我认为我们正在努力处理转义字符,但不确定还可以try 什么来匹配这些字符串.

推荐答案

看一下auto_unbox参数:

auto_unbox:自动取消装箱()所有长度为1的原子向量.

jsonlite::toJSON(zed1, auto_unbox = TRUE)
# {"firstName":"Tim","lastName":"Jones","team":{"value":104290,"teamMarket":"Card","gender":"MALE"}} 

不过,请注意文档中的警告:

通常更安全的做法是避免这种情况,而是使用unbox()函数来取消对单个元素的装箱.一个例外是ASIS类的对象(即包装在i()中)不会自动拆箱.这是一种将单个值标记为长度为1的数组的方法.

根据实际数据的复杂程度,您可能希望对长度为1的元素使用unbox()函数.

R相关问答推荐

在与ggplot 2和网格的最佳匹配线上绘制箭头

如何向使用plot_smooths()函数显示的GAM结果图表中添加点?

如何计算新变量中的通货inflating 率?

R包terra在投影时如何决定模板格栅属性?

R中的Fasttext langue_identification返回太多参数-如何与文本匹配?

R通过字符串中的索引连接数据帧r

R gtsummary tBL_summary,包含分层和两个独立分组变量

在ComplexHeatmap中,如何更改anno_barplot()标题的Angular ?

使用R中的gt对R中的html rmarkdown文件进行条件格式设置表的单元格

根据shiny 应用程序中的数字输入更改图标 colored颜色

随机森林回归:下拉列重要性

修改用R编写的用户定义函数

如果第一个列表中的元素等于第二个列表的元素,则替换为第三个列表的元素

如何优化向量的以下条件赋值?

如何从像glm这样的模型中提取系数表的相关性?

更新R中的数据表(使用data.table)

防止在更新SHINY中的Reactive Value的部分内容时触发依赖事件

仅当后续值与特定值匹配时,才在列中回填Nas

具有自定义仓位限制和计数的GGPLATE直方图

roxygen2正在处理太多的文件