Hi @danielpush10-com
I believe the flexible content would be the best choice for this kind of situation. You can also create a field group to show the initial fields and use the flexible content if the users need to add additional modules.
If you want to use the JSON method, I suggest you use the PHP method instead. This page should give you more idea about it: https://www.advancedcustomfields.com/resources/register-fields-via-php/. That way you don’t need to create and sync any field group.
I hope this makes sense 🙂