Simply doing JSON3.write(Tables.columntable(::DataFrame)) or JSON3.write(Tables.rowtable(::DataFrame)) outperforms the functions of JSONTables for me.
But only tested with non-custom eltypes (Numbers, Strings, etc.).
Maybe this could be worth a note in the docs somewhere.
But thank you very much for your packages!!
regards