6 ms·
Show HN: A command-line utility-belt for hacking JSON and Javascript
- RealCasually 14y agoI found this super useful: cat data.json | underscore print --color Gives you a well-formatted, color coded output for your JSON data. That is just one of the many things it can do.
- isaachawley 14y agocat data.json | python -mjson.tool Everything but the color.
- antihero 14y agocat data.json | json_reformat Seeing as lots of systems have yajl.
- tomjakubowski 14y agounderscore print --color < data.json :)
- ashayh 14y ago$ zsh_prompt> alias clijson="ruby -e 'require \"rubygems\";require \"json\"; require \"ap\"; j = JSON.parse(STDIN.gets); ap j'" command_that_emits_json | clijson
- ojiikun 14y agoVery nice! I've wanted something like this for as long as I've been a RecordStream (https://github.com/benbernard/RecordStream https://github.com/benbernard/RecordStream) fanatic.
- ddopson 14y agoThanks! I put this tool together to tackle a bunch of common tasks I had - groveling through large JSON responses from webservices, using templates to generate documents based on structured config data, etc. I'm really happy that other people are finding it useful too. If you have any feature requests, post them!!!
- petercooper 14y agoWhat's the ?ref=hn in the URL about? I'm intrigued if there's some way to track this sort of thing at GitHub. Or was it just to get around its two previous posts? ;-) (Not that I can blame you for that, gotta keep trying.)
- deleted 14y ago[deleted]
- nivla 14y agoI might be wrong but I don't think you can access your Github repo's analytics. The only reason I can think off other than the one you mentioned is that if the link gets reposted to forums/blogs, he knows the source of it as HN.
- iopuy 14y agoThe name of the tool is "underscore" in case you don't feel like clicking the link.
- RealCasually 14y agoActually, its 'underscore_cli'.
- iopuy 14y agoActually, its "underscore-CLI".
- RealCasually 14y agoTouche.
- ville 14y agoThis is not related to underscore.js anyhow? People might find that name confusing.
- johnleppings 14y agoDid you read the fucking article? The application began as a simple CLI for executing JS, and had underscore as its standard library. So it was a CLI for underscore. Then they made it JSON focused.
- keenerd 14y ago> Try doing THAT with any other CLI one-liner! Challenge accepted. cat earthporn.json | \ jshon -e data -e children -a -e data -e title -u | \ sed -r 's/\<./\U&/g' | tr -d ' ' | sed 's/[^a-zA-Z].*//g` I'll stick with Jshon for my routers and other little ARM devices. But this utility is pretty nifty. Personally the whole select thing feels a little too magic for my taste, but when it works it looks quite compact. I'll probably be borrowing that colorizing feature tomorrow. And thanks for the link at the bottom :-)
- ralph 14y agoNice to see tr getting some use, though given the sed on either side I wonder if sed -r 's/\<./\U&/g; s/ +//g; s/[^a-zA-Z].*//' would be better. Note, the last s/// doesn't need a g.
- foxwoods 14y agoTo inspect JSON in command-line, I prefer jsontool[1], it's more intuitive. something-generating-JSON-on-stdout | json [OPTIONS] [LOOKUPS] [1] http://trentm.com/json/ http://trentm.com/json/
- smagch 14y agoYeah, I use jsontool too. I always do on the terminal cat hoge.json | json | less
- kanzure 14y agoDoes anyone have a javascript deobfuscation tool that will autorename variables in different scopes? I love working with javascript through the shell, but js-beautify doesn't always cut it.
- yoduh 14y agoThe author says: "Or it can form the backbone of a rich, full-powered Javascript command-line, inspired by "perl -pe", and doing for structured data what sed, awk, and grep do for text." But... "structured data", at least in his examples (and nearly all the JSON I see on the web), is... text. Does his perl script handle binary json? The author says: "Try doing THAT with any other CLI one-liner!" Indeed I will, since I do not know perl. Should I learn it? The folllowing seems to work, but I only tested it on the author's earthporn.json example 1. compile CamelCase filter called yycamel 2. compose throwaway sed oneliner to massage the text 3. pipe through unicode to ascii filter (not included) 4. pipe through yycamel (I really do not like CamelCase, but whatever.) cat > camel.l << eof %% [ ][A-Za-z] printf("%c",toupper(yytext[1])); eof flex -iCfa camel.l cc lex.yy.c -static -ll -o yycamel sed 's/\"title\": /\ /g;' earthporn.json |sed 's/[[(]/\ /g;' | sed '/^\"[a-zA-Z]/!d;s/[^a-zA-Z]/ /g;s/ */ /g' |yycamel