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

Azure ADF Dataflow:将非数组结构的Survey JSON转换为行列格式

Azure Dataflow 处理动态键JSON转表格方案

针对你遇到的API返回JSON中questions是动态键对象而非数组的问题,不用Flatten,改用Unpivot转换配合字段提取即可实现需求,具体步骤如下:

1. 源数据接入

确保Dataflow的源已正确连接到API返回的数据集,确认questions字段被识别为Object类型。

2. 用Unpivot拆分动态键为行

添加Unpivot转换,配置如下:

  • 选择要Unpivot的列:questions
  • 勾选「Unpivot all columns」(因为QID键是动态的,无法指定固定列)
  • 设置输出列:
    • 键列:命名为QuestionId(对应原来的QIDXX)
    • 值列:命名为QuestionDetails(对应每个QID下的问题JSON对象)

这一步会把单个Survey数据拆分为N行(N为问题数量),每行对应一个问题,同时保留原Survey的所有字段(如SurveyId、SurveyName等)。

3. 提取问题详情字段

添加Derived Column转换(或Select转换),从QuestionDetails对象中提取需要的字段,比如:

  • questionText = QuestionDetails.questionText
  • questionType = QuestionDetails.type
    (根据实际JSON结构调整字段路径)

4. 清理与输出

用Select转换移除不需要的中间列(比如QuestionDetails),确保最终列包含:SurveyId、QuestionId、questionText、questionType等目标字段。

最后通过Sink转换将数据写入目标SQL表。

示例效果

原始JSON片段:

{
  "SurveyId": "SURV001",
  "SurveyName": "客户满意度调查",
  "questions": {
    "QID01": {"questionText": "您的满意度如何?", "type": "评分"},
    "QID02": {"questionText": "是否推荐给他人?", "type": "是非"}
  }
}

转换后目标表数据:

SurveyIdSurveyNameQuestionIdquestionTextquestionType
SURV001客户满意度调查QID01您的满意度如何?评分
SURV001客户满意度调查QID02是否推荐给他人?是非

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 20:55:26