The main benefit(s) I can see are not having to make sure your json syntax is spot on, using code completion in your IDE for the method names, and being able to make loops where things are similar. That being said, I have yet to use them myself, since I'm a tinkerer more than a modder making a mod.
https://wiki.mcjty.eu/modding/index.php?title=Tut14_Ep7
McJty has a pretty good starting point, also forge has some examples, and the net.minecraftforge.client.models.generators package has BlockState/Model generators, https://github.com/MinecraftForge/MinecraftForge/blob/1.15.x/src/test/java/net/minecraftforge/debug/DataGeneratorTest.java has examples of those I think.