Settings

Theme

To a Man with `Jq`, Everything Looks Like JSON

ishan.page

48 points by ishandotpage 2 years ago · 13 comments

Reader

mdaniel 2 years ago

heh, wait until one discovers that gojq <https://github.com/itchyny/gojq#difference-to-jq> accepts yaml input; so, if you happen to have a bunch of _almost_ structured data then some light sprinkling can turn it into yaml and then you're back in the loving embrace of the jq transformation/mutation language :heart:

   $ cat some-vendor-nonsense.txt
   product id: 5
   price: 3.14

   product id: 6
   price: 6.66

   $ sed "s/^/  /; s/^  product/- product/" < some-vendor-nonsense.txt \
     | gojq --yaml-input .
rnemeth91 2 years ago

If you'd like to use jq in any JetBrains IDE (e.g. IntelliJ), here's a plugin for it: https://plugins.jetbrains.com/plugin/23360-jqexpress

QuercusMax 2 years ago

At some point in the last 25 years I learned "perl -pi -e" and "for x in [whatever]; do [something] $x; done" and I type those without thinking when I'm working in the shell. I haven't written any perl in probably 12 years, but I still use it for file manipulation.

mpalmer 2 years ago

jq has string interpolation too, so it can even get a little bit nicer:

    "<option value=\"/examples/\(.)/\">\(.)</option>"
  • mdaniel 2 years ago

    Yeah, but muscle memory bites me all the time and I put the backslash on the closing paren, too, because I'm so used to the regex usage of that syntax which needs them to match

    I also want to draw the reader's attention to the magic of |@uri <https://github.com/jqlang/jq/blob/jq-1.7/docs/content/manual...> for a bunch of cases, but doubly so in TFA's case where they're plugging strings into a URI context. Simple string concat often works great for "hello world", but the world is not always just hello, so one quick use of the filter and jq's got your back

      echo "the world's scary" | jq -Rr '"<option value=\"/examples/\(.|@uri)\">\(.)</value>"'
sam0x17 2 years ago

> Back in the Bootstrap 3 days, there used to be a customizer.

There is still a quite good bootstrap customizer at bootstrap.build btw ;)

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection