https://futureofcoding.org/ logo
Title
d

dnmfarrell

12/29/2021, 7:51 PM
I wrote a tutorial for
jp
my bash-based json processor. https://github.com/dnmfarrell/jp#tutorial I'm trying to make it easy for newcomers to learn something useful and accomplish something right away (even if the Venn diagram of users with bash who need to validate/transform json and don't already use jq is small). I'd appreciate any feedback anyone has. Thanks!
t

Tom Larkworthy

12/30/2021, 7:42 PM
Looks interesting, but hard for me to figure out how to program it. I prefer functional abstractions, Modeling a stack in my head feels inherently difficult to learn. Most JSON transforms I want to do is to flatten and pack things. I dunno how to do that. I look at map with fear. I don't think it can handle what I would want it for.
d

dnmfarrell

12/31/2021, 1:47 PM
Hey thanks for taking a look. I agree, the stack concept is more abstract than passing explicit arguments. Do you have an example json transformation I could try? I'm curious if jp is missing a feature or if there is a use case it doesn't serve.
t

Tom Larkworthy

12/31/2021, 7:38 PM
OK here is my last usages of jq
gcloud container images list-tags <http://eu.gcr.io/endpointservice/serversidecells|eu.gcr.io/endpointservice/serversidecells> \
    --project=endpointservice --limit 1 --format=json | jq '.[0].tags[0]' --raw-output

which is '.[0].tags[0]' against:
[
  {
    "digest": "sha256:7c470e2220c6e3160b88d88db9dc5bd121203e7bd2a734bda2a43d7af0277a0c",
    "tags": [
      "20211217_143425"
    ],
    "timestamp": {
      "datetime": "2021-12-17 14:36:54+01:00",
      "day": 17,
      "fold": 0,
      "hour": 14,
      "microsecond": 0,
      "minute": 36,
      "month": 12,
      "second": 54,
      "year": 2021
    }
  }
]
so i am really just reading first tags value via some kind of path based index
d

dnmfarrell

01/03/2022, 3:37 PM
Gotcha, yeah jp could use a path syntax. This is helpful, thanks.