[HN Gopher] Make JSON Greppable
       ___________________________________________________________________
        
       Make JSON Greppable
        
       Author : mooreds
       Score  : 32 points
       Date   : 2023-12-03 21:45 UTC (1 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | g105b wrote:
       | Looks like an interesting tool. I use jq for any JSON related
       | task, but it can often be finicky and complex when I just need to
       | get at a value or search for something.
       | 
       | Looks like gron would be a nice addition to my workflow with JSON
       | tasks.
        
       | blcknight wrote:
       | This is brilliant, I can't wait to have a json problem to try it
       | out.
        
       | rauljara wrote:
       | Hmmm... at first glance, this feels like I'd use it for the same
       | sorts of things I'd use jq for, only easier to use but also way
       | less powerful. Jq does have a little bit of a learning curve
       | necessary to get good use out of it, so I could see this being a
       | nice quick tool for people who don't want to make that
       | investment. Having already learned jq, I'm not sure why I would
       | reach for gron, but maybe I'm missing something.
        
       | derwildemomo wrote:
       | Great idea, definitely makes sense when you have that kind of
       | problem.
       | 
       | Also the username of the author made me chuckle, bonus points for
       | that.
        
       | omeid2 wrote:
       | As someone who has been using jq for years, my first instinct was
       | why not jq? and while it answers it in the README as well, it is
       | not very clear until you compare the output to jq.
       | $ gron
       | "https://api.github.com/repos/tomnomnom/gron/commits?per_page=1"
       | | fgrep "commit.author"        json[0].commit.author = {};
       | json[0].commit.author.date = "2016-07-02T10:51:21Z";
       | json[0].commit.author.email = "mail@tomnomnom.com";
       | json[0].commit.author.name = "Tom Hudson";
       | 
       | And with jq:                   $ curl
       | "https://api.github.com/repos/tomnomnom/gron/commits?per_page=1"
       | | jq ".[].commit.author"          {           "name": "Tom
       | Hudson",           "email": "mail@tomnomnom.com",
       | "date": "2022-04-13T14:23:37Z"         }
       | 
       | The jq version isn't greppable, as you can't do `| grep
       | '.author.email'` for example.
        
       | slt2021 wrote:
       | This is awesome!
       | 
       | I am going to try to use it to make surgical edits to the
       | terraform state file, in rare cases when I have to.
       | 
       | Some terraform providers would rather delete and recreate
       | resource, while a simple edit would do the trick for me
        
       | salted-fry wrote:
       | I use gron a lot, because I can never remember how to use jq to
       | do anything fancy but can usually make awk work. (I may be
       | unusual in that department, in that I actually like awk)
       | 
       | One warning to note is that gron _burns_ RAM. I 've killed 32GB
       | servers working with 15MB JSON files. (I think gron -u is even
       | worse, but my memory is a bit fuzzy here).
       | 
       | https://github.com/adamritter/fastgron has been pretty good to me
       | in terms of performance, I think both in speed and RAM usage.
        
       | Eumenes wrote:
       | can see this being useful for pentesting, jq is fine but always
       | have to look at documentation and relearn it every few
       | weeks/months
        
       ___________________________________________________________________
       (page generated 2023-12-03 23:00 UTC)