I need to parse JSON data from a string inside a Azure Data Flow. So far, I was able to parse all my data using the "Parse" function of the Data Flows. But now I am faced with a list of objects, and I don't know how to parse the values of that "complex array".
My data is looking like this:
There are some metadata fields (here null) and a Base64 encoded Body field. Every JSON document is in a separate JSON file.
The example data:
{
"metadata": null,
"Body": "eyJpZCI6ICIxIiwgImNvdW50IjogMTIsICJwcm9qZWN0cyI6IFt7Imd1aWQiOiAiMTIzMTItMTI0MzE0LTEyNDEtMTIzNCIsICJzdGF0dXMiOiAic3RvcHBlZCJ9LHsiZ3VpZCI6ICJjc2lzdi1uZDkyM24tMTM0MS0yMzQxIiwgInN0YXR1cyI6ICJydW5uaW5nIn1dfQ"
}
For clarification, the encoded example data looks like this:
{
"metadata": null,
"Body": "{"id": "1", "count": 12, "projects": [{"guid": "12312-124314-1241-1234", "status": "stopped"},{"guid": "csisv-nd923n-1341-2341", "status": "running"}]}"
}
My goal is to have a parquet file containing the data from the Body. So there should be three columns: id, count, projects. Projects should contain a list of complex objects.
The final result should look like this:

This is the result, when I load a JSON file, where the Body data is not encoded, but plain JSON containing the list of objects. Note, that this is not feasible for the original problem, where the JSON data is Base64 encoded.
When I load the example data into a dataflow the projection looks like this (as expected):

First, I need to decode the Base64 Body and then I can parse the JSON string:

And basic parsing is done here:

How can I parse the field "projects"? Given that every object in the list of the array field has the same schema.
I already tried parsing the field "projects" as string and add another Parse step to parse this string as "Array of documents", but the results are only Null values..









