R语言解析修改JSON文件并移除生成结果的方括号
解决R中jsonlite生成JSON时entry外多余方括号的问题
问题原因
你遇到的多余方括号,通常是因为读取JSON时自动将嵌套结构转成了数据框,或者保存时没有开启拆箱设置,导致单个对象被序列化成了数组(JSON里数组用方括号包裹)。
解决方案步骤
正确读取JSON文件
用jsonlite::read_json时,设置simplifyVector = FALSE,避免把entry下的键值对转成数据框,保持纯列表结构:library(jsonlite) library(tidyverse) # 读取时保留原始列表结构 data <- read_json("test.json", simplifyVector = FALSE)确保entry是命名列表而非数据框
如果修改数据过程中不小心将entry转成了数据框,用as.list()把每个entry转回命名列表,批量处理可以用purrr::map:# 批量转换所有entry为命名列表 data <- map(data, as.list)保存时开启拆箱设置
使用write_json时添加auto_unbox = TRUE,这个参数会把单个对象直接序列化为JSON键值对(花括号),而不是数组(方括号):# 修改数据示例:更新entry_1下的US值 data$entry_1$US <- "updated_value" # 保存为新JSON文件,同时开启pretty格式化方便查看 write_json(data, "new_test.json", auto_unbox = TRUE, pretty = TRUE)
验证结果
生成的new_test.json结构会和原文件一致,每个entry下直接是国家代码的键值对,不会出现多余方括号。
内容的提问来源于stack exchange,提问作者larry77
相关产品推荐
相关产品推荐

