You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用R包jsonlite实现JSON字符串的无损转换?

解决jsonlite转换JSON时布尔值变数组的问题

直接用fromJSON默认参数会把单个布尔值转成R里的长度1向量,再转JSON时就变成数组了,你可以这么处理:

  • 解析JSON时添加simplifyVector=FALSE参数,保留原始的层级结构,避免单个值被转为向量:
obj <- jsonlite::fromJSON('{"A":["a"], "B":true}', simplifyVector = FALSE)

这时obj$B是单个逻辑值,而非向量。

  • 修改完对象后,转回JSON时加上auto_unbox=TRUE,自动把长度1的向量拆回单个值:
jsonlite::toJSON(obj, auto_unbox = TRUE)

输出结果就是{"A":["a"],"B":true},和原始JSON完全一致。

如果已经用默认参数完成了解析,也可以手动把向量转成单个值,比如obj$B <- obj$B[[1]],再配合auto_unbox=TRUE转JSON,同样能得到正确结果。

内容的提问来源于stack exchange,提问作者abcdefg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 14:44:53