ActiveSupport::JSON decode hash losing symbols
JSON.parse(j, {:symbolize_names => true})
should be slightly better because it (I assume) never creates string keys in the first place and hence conserves memory for large hashes with the same keys repeated often
h2 = ActiveSupport::JSON.decode(j).symbolize_keys