Azure Dataflow无法从JSON字符串提取数据并扁平化数组求助
Azure Dataflow 中JSON字符串反序列化与数组扁平化方案
步骤1:确保JSON字符串格式合法
你提供的示例JSON字符串开头缺失{,需补全为完整的JSON对象格式,否则无法正确解析:
{ "vehicles": [ { "id": "uk-777", "discontinued": "2025-12-25", "released": "2012-12-25", "ranged": true, "discontinued_label": "month" }, { "id": "uk-778", "discontinued": "2025-12-25", "released": "2012-12-25", "ranged": false, "discontinued_label": "year" } ] }
步骤2:用Derived Column解析JSON字符串
添加Derived Column活动,创建一个新列(例如命名为vehicles_complex),使用json()函数将JSON字符串列转换为Dataflow支持的复杂类型:
json(你的原始JSON字符串列名)
这个函数会直接将合法的JSON字符串解析为包含数组的对象类型。
步骤3:用Flatten活动展开数组
添加Flatten活动,在配置面板中:
- 选择
vehicles_complex作为根对象 - 指定展开路径为
vehicles数组
完成配置后,数组中的每个对象会被拆分为单独的行。
步骤4:提取目标字段
展开后,直接引用对象字段即可获取对应值,例如:
vehicles_complex.idvehicles_complex.discontinuedvehicles_complex.releasedvehicles_complex.rangedvehicles_complex.discontinued_label
若需要将这些字段转为单独的列,可再次使用Derived Column活动,为每个字段创建独立列。
额外注意事项
- 若字段需要类型转换(如日期字符串转日期类型、布尔值转布尔类型),可在提取字段后用Cast活动单独转换单个字段(Cast支持简单类型转换,仅不支持复杂类型的直接转换)
- 确保原始JSON字符串无语法错误,比如转义字符、括号匹配等问题,否则
json()函数会解析失败
内容的提问来源于stack exchange,提问作者Indrid
相关产品推荐
相关产品推荐

