After skimming the source code, it looks like they are functionally equivalent. Both converge on [generate_json_object](https://github.com/ruby/ruby/blob/trunk/ext/json/generator/generator.c#L680) in the C code. I'm preffering `JSON.dump` here in hopes that it'll provide insulation from other libraries patching `Hash#to_json`.