I think you can pass multiple responses from your webhook in this way. basically once your webhook get a request from the dialogflow you will do the process and pass the fulfillmentText back as the response. so there you can convert your json object to string and pass it back. from the frontend application you can convert it back to json or what ever format you want and use it however you want.
A simple example form nodejs (webhook). the approach should be same for all languages
router.post('/web-hook', function(req, res, next) {
//do your process here
res.json({
'fulfillmentText': JSON.stringify([{response:"response 1"},{response:"response 2"},{response:"response 3"}])
});
})