在Azure Data Factory中动态展平固定名称的嵌套JSON对象
在Azure Data Factory Data Flow中动态展开固定名称的嵌套JSON对象到根层级
需求说明
需要将JSON数据中固定名称为nestedObject的嵌套对象内的所有键值对迁移至根层级,同时保留原根层级的其他所有键值对,且nestedObject内部的键为未知的动态组合。
输入示例1
{ "nestedObject":{"key1":"value1"}, "boolean": true }
输出示例1
{ "key1":"value1", "boolean": true }
输入示例2
{ "nestedObject": {"key2":"value2","key3":"value3"}, "boolean": true }
输出示例2
{ "key2":"value2", "key3":"value3", "boolean": true }
实现步骤(Data Flow活动)
完全可以通过Data Flow实现该动态处理需求,具体操作如下:
- 配置源数据集:添加并配置指向目标JSON数据源的源组件,确保Data Flow能正确识别JSON结构。
- 添加派生列转换:在源组件后添加派生列转换,使用以下动态表达式生成合并后的根对象:
表达式说明:mergeObjects(remove($$, 'nestedObject'), nestedObject)remove($$, 'nestedObject'):移除当前根对象($$指代根层级)中的nestedObject字段,保留其余所有根层级键值对mergeObjects():将移除nestedObject后的根对象与nestedObject内部的对象合并,生成包含所有目标键值对的新对象
- 替换根对象(可选):如果需要直接替换原有根结构,可以将派生列的结果设置为新的根对象;也可以将该派生列作为后续处理的字段。
- 配置接收器:添加接收器组件,配置输出的JSON数据集,完成数据导出。
你可以通过Data Flow的数据预览功能即时验证处理结果,确认nestedObject的动态键已全部迁移至根层级,且原有根字段完整保留。
内容的提问来源于stack exchange,提问作者kaamodt
相关产品推荐
相关产品推荐

