[HN Gopher] Show HN: Flatito, grep for YAML and JSON files
       ___________________________________________________________________
        
       Show HN: Flatito, grep for YAML and JSON files
        
       It is a kind of grep for YAML and JSON files. It allows you to
       search for a key and get the value and the line number where it is
       located.  I created this tool because I sometimes struggle to find
       specific keys in typical i18n rails yamls. In the views, you don't
       always have the whole key, but it is extrapolated from the context.
       I am sure there are other use cases; I hope you find it useful.
       Cheers!
        
       Author : ceritium
       Score  : 50 points
       Date   : 2024-03-25 14:30 UTC (8 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | Yasuraka wrote:
       | What I often use to just get the full key paths is yq
       | (https://github.com/mikefarah/yq), piping into grep when
       | necessary                 yq -o=props <file>
       | 
       | e.g.                 kind = Ingress       metadata.name = hello
       | spec.rules.0.host = localhost
       | spec.rules.0.http.paths.0.pathType = ImplementationSpecific
       | spec.rules.0.http.paths.0.backend.service.name = hello
       | spec.rules.0.http.paths.0.backend.service.port.number = 80
       | 
       | The one drawback I've encountered so far are multi-doc files - yq
       | can certainly handle those, but you have to script the loop
       | yourself.
        
       | dimatura wrote:
       | So I see that the name is derived from an esperanto word
       | (apparently meaning "flatter") but in spanish it would also mean
       | a small burp ("flato" being an informal term for burp). Which I
       | still like as a name ;)
        
         | selimnairb wrote:
         | My brain saw "fellatio" at first.
        
           | crorella wrote:
           | Flatito means "little burp" in Chilean Spanish
        
         | elondaits wrote:
         | In Argentina a "flato" is a flatulence, and flatito would mean
         | a little fart.
        
         | eddd-ddde wrote:
         | It's funny being a native Spanish speaker, and seeing other
         | Spanish speakers talk about words you have never ever heard of
         | before.
        
         | ceritium wrote:
         | Hi! Author here! I am spanish, flato means that, but it's also
         | that pain in the side of the belly when you are running.
        
       | llimllib wrote:
       | related project, gron: https://github.com/tomnomnom/gron
       | > 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";
        
         | wewtyflakes wrote:
         | Looks neat, but what happens if a JSON key has a value like
         | "foo.bar" or "foo[0]", etc. Does the textual response escape
         | them?
        
           | matja wrote:
           | Yes:                   json = {};         json["foo.bar"] =
           | true;         json["foo[0]"] = true;
        
       | ratrocket wrote:
       | This looks cool!
       | 
       | It doesn't do quite the same thing, but a tool I've had good luck
       | with for quick-n-dirty grepping of JSON is gron:
       | 
       | https://github.com/tomnomnom/gron
       | 
       | (which I'm sure I learned about from a thread like this on HN...)
       | 
       | It sort of "flattens out" your JSON to allow you to do whatever
       | you want to it (grepping, for one thing!). Then you can even turn
       | gron's output back into JSON with `ungron`.
       | 
       | Maybe someone will find it a useful toolbox addition, much like
       | the Flatito looks to be!
        
       | account-5 wrote:
       | Is this different from yq?
        
         | ceritium wrote:
         | Hi, I didn't know about yq until now; as far as I can see, it
         | seems to allow complex queries and manipulations and handle
         | more formats. Flatito, on the contrary, only handles YAML and
         | JSON. It can look in a whole directory, and most importantly
         | for me, it shows the line number needed to locate the value.
        
       | gxonatano wrote:
       | This is the kind of thing Nushell is already really good at.
        
       ___________________________________________________________________
       (page generated 2024-03-25 23:01 UTC)