you are right that xdm compliant option is to load the array objects without any mapping issues. For example, you have the following file
firstname:xyz
lastname:abc
email:email@email.com
when you load this csv file, you need to map the source file which is csv file fields and target values from aep schema's xdm attributes. But, when you load the second option called json, it is a proper key value pair which is structures instead the AEP schema. So, it will automatically map to those values
{_tenant:{"firstname":"xyz","lastName":"abc","email":"email@email.com"}}