https://github.com/skorokithakis/jsane
There's no code there, but the underlying class is pretty much spot on yours. I'm still trying to improve the API, but it's not looking great.
json.structure.that.i.want.to.access.default(True)
Or something like that. I don't really like the default item API I've come up... I'll comment here if I do give it a go, thanks for the snippet!