> I've never been able to figure out why/how Jq got so much larger so much faster.
I offer this in the sense of constructive criticism: for me, it's because your examples are scary. Here's the command you give for reading a URL of a photo uploaded to reddit (in file foo.json):
$ jshon -e data -e children -e 0 -e data -e url < foo.json
Here's the jq equivalent:
$ jq -r '.data.children[0].data.url' < foo.json
which looks an awful lot like every other tree parser I've used. Now suppose I want to get all the URLs with jq? That's just:
$ jq -r '.data.children[].data.url' < foo.json
In Jshon, I have to rewrite the query as:
$ jshon -e data -e children -a -e data -e url -u < foo.json
That is, replacing the "-e 0" (get item at index 0) with "-a" (do the rest for all items). The jq equivalent changes ".children[0]" to ".children[]", which to my poor muddled brain more clearly represents what I'm asking for. For me, jq's query language maps well onto how I think about the problem. Jshon's does not. That's why I use one and not the other.
Again, I offer this sincerely. Even if I don't personally use it, I love when cool ideas cross-pollinate from one project to another and I'm glad there's more than one player in the space. Thanks for your work!
homepage: http://kmkeen.com/jshon/
Jshon is also a year older. I've never been able to figure out why/how Jq got so much larger so much faster.