The FormJsonSerializer class is the one true JSON serializer in D365. The static serializeClass() method is the simplest to implement, and can handle the most complex of contracts. If you want to get wild, set a breakpoint and load D365 in a new browser tab.
What's the competition?
You could write your own class and reinvent the wheel.
You could be like the retail team and use the RetailTransactionServiceJsonHelper class but it's fussier.
You could stop here and just use FormJsonSerializer.