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

如何在R中实现嵌套JSON对象的拆分解构

R语言嵌套JSON拆分结构化解决方案

前置依赖

首先安装所需工具包:

install.packages(c("jsonlite", "tidyverse"))

需要用到的核心功能来自jsonlite(JSON数据读取解析)和tidyverse生态下的tidyr(嵌套结构拆分)、dplyr(数据处理)。

标准处理流程

1. 数据读取

首先解析源JSON数据,本地文件/JSON字符串均可直接读取:

library(jsonlite)
library(tidyverse)

# 括号内传入JSON字符串或本地JSON文件路径
raw_data <- fromJSON("你的JSON数据源路径/JSON字符串", simplifyVector = FALSE)

2. 逐层拆分嵌套结构

之前未得到预期结果通常是因为未优先展开嵌套数组层,或拆分多层对象时列名重复导致数据被覆盖,设置names_sep参数可规避该问题:

# 转换为tibble结构
json_tbl <- tibble(raw = raw_data)

# 拆分最外层对象
level1 <- json_tbl %>%
  unnest_wider(raw)

# 拆分第二层嵌套对象,names_sep设置前缀避免列名冲突
level2 <- level1 %>%
  unnest_wider(第二层嵌套列名, names_sep = "_")

# 如存在嵌套数组,先展开行再拆分数组内的对象
final_result <- level2 %>%
  unnest_longer(嵌套数组列名) %>%
  unnest_wider(嵌套数组列名, names_sep = "_")

# 若存在更多层嵌套,按照相同逻辑逐层调用unnest_wider/unnest_longer即可

通用批量处理方案

如果需要处理大量同结构JSON,可将上述逻辑封装为函数批量执行:

flatten_nested_json <- function(json_input) {
  tibble(raw = json_input) %>%
    unnest_wider(raw) %>%
    # 按照你的JSON实际结构替换后续逐层拆分逻辑
    unnest_wider(user_info, names_sep = "_") %>%
    unnest_wider(user_info_contact, names_sep = "_") %>%
    unnest_longer(order_records) %>%
    unnest_wider(order_records, names_sep = "_")
}

# 批量处理时结合purrr::map即可
batch_result <- purrr::map_dfr(所有JSON数据列表, flatten_nested_json)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:06:07