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

如何在R中导出JSON文件时去除特定类字典字符串的引号?

解决R中导出混合JSON内容时特定字符串去引号的问题

你需要导出的内容包含普通字符串、类字典格式字符串和列表,要求类字典字符串输出时不带引号,直接用jsonlite::write_json无法实现——因为它会严格遵循JSON规范给所有字符串自动添加引号。可以通过手动处理每个元素的输出格式,再拼接写入文件来达成需求:

实现代码

library(jsonlite)

x <- c("apples", "oranges")
y <- "{'add': 'bananas'}"
z <- list("mangoes", "pears")

# 分别处理每个元素的输出格式
# 普通字符串转成带双引号的标准JSON格式
processed_x <- sapply(x, function(s) toJSON(s, auto_unbox = TRUE))
# 类字典字符串直接保留原格式
processed_y <- y
# 列表转成JSON数组格式
processed_z <- toJSON(z, auto_unbox = FALSE)

# 合并所有行
output_lines <- c(processed_x, processed_y, processed_z)

# 写入文件,每行一个元素
cat(paste(output_lines, collapse = "\n"), "\n", file = "output.json")

补充说明

  • jsonlite::write_json是为生成标准JSON设计的,会自动给所有字符串类型对象添加引号;全局设置quote=F会去掉所有字符串的引号,不符合你的精准需求。
  • 手动处理每个元素可以精准控制输出格式:普通字符串用toJSON转成合法JSON字符串,类字典字符串直接复用原内容,列表转成JSON数组,最后用cat拼接各行写入文件,就能得到你想要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 23:30:54