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

如何将R的tibble/dataframe转换为带数组的多层嵌套JSON

R tibble转两层嵌套JSON实现方法

你当前只做了单层分组汇总,要实现Type→SubType的两层嵌套,需要做两次分层汇总:

  1. 先按最细粒度(Type+SubType+SubTypeNr)分组,把两个数值列汇总为列表
  2. 再按Type分组,把所有SubType相关的字段打包为子对象列表

实现代码如下:

library(tidyverse)
library(jsonlite)

result <- data %>% 
  # 第一层:按最小分组汇总数值为数组
  group_by(Type, SubType, SubTypeNr) %>%
  summarise(
    SubTypeVal1 = list(SubTypeVal1),
    SubTypeVal2 = list(SubTypeVal2),
    .groups = "drop_last" # 保留Type分组,丢弃SubType、SubTypeNr的分组状态
  ) %>%
  # 第二层:按Type分组,把SubType相关内容打包为子列表
  summarise(
    SubTypes = list(pick(SubType, SubTypeNr, SubTypeVal1, SubTypeVal2)),
    .groups = "drop"
  ) %>%
  toJSON(pretty = TRUE, auto_unbox = TRUE)

print(result)

参数auto_unbox = TRUE可以把单个字符串/数值的外层数组去掉,匹配你需要的格式。你贴的目标JSON示例存在语法小问题(对象不能直接嵌套对象,正确结构是Type对应SubTypes数组存储所有子类型),上述代码输出的结构完全符合你要的层级逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:06:01