What CF engine are you using and what version? Generally speaking, Adobe CF does way worse than Lucee at serializing JSON because it stores everything as a string internally which forces it to “guess” the original data type when it’s time to build JSON. As far as the format, you don’t need to write your own JSON serializer just for that. Simply write a transformer that loops over the JSON and massages it into a different format.
But all you probably really need is to pass “struct” for the serializeQueryByColumns parameter (I really hate how they “borrowed” a boolean parameter and overloaded it like that) https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-s/serializejson.html
Just note that “struct” format requires ACF 2016 or Lucee 5.2.3.7 which is why I started out by asking what engine you’re on.
As far as marrying modern front end frameworks with ColdFusion, we’re doing a lot of this mostly with Angular and more recently with Vue.js at Ortus Solutions. We’ve even made some nice projects like ColdBox Elixir to create opinionated asset pipelines in your apps. I don’t do much front end stuff myself so I don’t have many specifics, but I’m sure Luis, Eric Peterson or Jon Clausen could share more if you’re interested. Just h0p in the #box-products channel on CFML Slack.