如何用R语言导出不含外层方括号的JSON文件?
解决方法
要直接导出不含外层方括号的JSON对象,无需额外步骤,只需在jsonlite::write_json中添加参数,或转换数据结构即可实现:
方法1:添加auto_unbox = TRUE参数
df <- data.frame( Name = c("John"), Phone = c("123-456-7890") ) jsonlite::write_json(df, 'test.json', pretty = TRUE, auto_unbox = TRUE)
方法2:将数据框转为列表后导出
df <- data.frame( Name = c("John"), Phone = c("123-456-7890") ) jsonlite::write_json(as.list(df), 'test.json', pretty = TRUE)
两种方式都能生成你期望的格式:
{ "Name": "John", "Phone": "123-456-7890" }
原因说明
- 数据框在jsonlite中默认被序列化为JSON数组(外层带方括号),因为它本质是多行数据的集合。
auto_unbox = TRUE会自动将长度为1的向量"拆箱",把单一行的数据框转为单个JSON对象。- 将数据框转为列表后,jsonlite会直接把列表序列化为JSON对象,而非数组。
内容的提问来源于stack exchange,提问作者OldManSeph
相关产品推荐
相关产品推荐

