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

Azure Dataflow中解析字符串为JSON并提取所有值至数组的方案问询

Azure Dataflow解析含特殊键的JSON字符串并合并为一维数组

问题背景

从Dataverse读取的表中,某列每行是带特殊键(含空格、%)的键值对字符串,直接用Parser活动的常规字段映射会返回空值,需要将所有行的所有值合并为一维数组,供外部ForEach活动遍历。

解决步骤

1. 解析JSON字符串为对象

使用Parser活动,配置如下:

  • 选择要解析的目标列(即存储键值对字符串的列)
  • 输出列名设为parsedJson,类型选择Object
  • 解析模式选择JSON document(而非字段映射模式)
    这样会把每行的字符串完整解析为JSON对象,避开特殊键的识别问题。

2. 提取单行的所有值为数组

添加Derived Column活动,创建新列(比如rowValues),使用表达式:

values(parsedJson)

values()函数会直接提取JSON对象的所有值,返回一个数组,无需关心键的特殊格式,每行输出类似:
['093e2b7d-c53a-4387-8b3e-26e4e0386357', '93744353-f1ab-4030-b0e9-d4dce5b169aa', 'd7b04c9b-e2f7-47f9-ae75-b8027627740b']

3. 合并所有行的数组为一维数组

添加Aggregate活动:

  • 取消所有分组条件(保持全局聚合)
  • 创建新列(比如allValues),使用表达式:
flatten(collect_list(rowValues))

collect_list()会把所有行的rowValues数组收集为一个二维数组,再通过flatten()将其转为一维数组,最终得到你需要的格式:
['093e2b7d-c53a-4387-8b3e-26e4e0386357', '93744353-f1ab-4030-b0e9-d4dce5b169aa', 'd7b04c9b-e2f7-47f9-ae75-b8027627740b','5e6da70c-00e9-482c-8ebf-5a020daedab0', ...]

4. 供外部ForEach活动调用

在Dataflow的输出数据集里,这个一维数组存储在allValues列中。在ForEach活动的Items属性中,引用该数组:

@activity('你的Dataflow活动名称').output.first().allValues

即可遍历每个UUID值。

为什么之前的Parser表达式无效

因为键包含空格、%等特殊字符,Dataflow的字段引用语法{键名}无法识别这类特殊格式的键,通过先解析为完整JSON对象,再用values()提取值的方式,就能绕过键名的格式限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 08:55:08