JSONTables.jl enables conversion from a Table (or DataFrame) to JSON and back again. However, the recovered table is often not the same as the input table because the package doesn’t preserve types.
Issue #6 in that package concerns this problem and offers a solution, though in its current form the proposed solution is particular to DataFrames (not all types that satisfy the Tables interface) and JSON (not JSON3).
Combining the 2 approaches gives us the best of both worlds - a package that converts between Tables and JSON in either direction without loss of information.