ADF:将包含对象数组的 JSON 文件拆分为单个 JSON 文件,每个文件包含一个元素

ADF: Split a JSON file with an Array of Objects into Single JSON files containing One Element in Each

我正在使用 Azure 数据工厂并尝试将 JSON 文件(即 JSON 对象数组)转换为单独的 JSON 文件,每个文件包含一个元素,例如输入:

[
{"Animal":"Cat","Colour":"Red","Age":12,"Visits":[{"Reason":"Injections","Date":"2020-03-15"},{"Reason":"Check-up","Date":"2020-01-02"}]},
{"Animal":"Dog","Colour":"Blue","Age":1,"Visits":[{"Reason":"Check-up","Date":"2020-02-08"}]},
{"Animal":"Guinea Pig","Colour":"Green","Age":5,"Visits":[{"Reason":"Injections","Date":"2019-12-01"},{"Reason":"Check-up","Date":"2020-02-26"}]}
]

但是,我已经尝试使用 Data Flow 将此数组拆分为包含 JSON 数组的每个元素的单个文件,但无法解决。理想情况下,我还想动态命名每个文件,例如Cat.json、Dog.json 和 "Guinea Pig.json"。

Data Flow 是 Azure 数据工厂(版本 2)的正确工具吗?

数据流应该为您完成。您上面的 JSON 代码段将生成 3 行。这些行中的每一行都可以发送到单个接收器。将接收器设置为数据集中没有文件名的 JSON 接收器。在Sink transformation中,使用'As Data in Column'的'File Name Option'。在使用此表达式设置名为 'filename' 的新列之前添加一个派生列:

动物 + '.json'

使用列名称 'filename' 作为接收器列中的数据。

您会为每一行获得一个单独的文件。