Asset Upload via Plugin - S3 gets wrong Content-Type
While Craft 3 will be smarter about this, this is not currently possible in Craft 2.

What you can do, though, is modify craft/app/helpers/IOHelper.php::getMimeType() function so that it always returns the mime type by extension instead by the content, since the core problem is that FileInfo extension cannot detect JSON by looking at the file contents. I'm a bit doubtful of any future releases for Craft 2 that affect this file, but, for posterity, probably better to write down any changes you make somewhere in case they get reverted.