Debatching is a common need in enterprise integration. I found a very informative link on using SplitOn with either json or xml as the input message.
Link: Blog Toon Vanhoutte
From an exception handling perspective this approach is neat, because you get a separate logic app for each array item. All these logic apps can run and be resubmitted independently. Compare this with a foreach construct where there’s only one parent logic app that fails when one of the child logic apps fails. There’s one important gotcha. If you do nothing and send an invalid message the SplitOn action may fail. That’s why it’s good practice to always validate the message before SplitOn. For json messages you can use the Parse Json action.
The logic apps are separate when using the SplitOn command, but you can relate them using the CorrelationID. For querying logic apps yoyu can use Logic Apps Management REST API.