Idea: just put the thing in localstorage? It's cheaper, less fiddly, you can encrypt it with something like TEA if you so desire, and doesn't make urls unshareable by existing
But when you put json in the URL, you normally do want exactly that. Making the URL shareable.