jq pattern for terrible JSON

Many JSON formats are completely brain dead. Instead of the natural { key : value }, these formats go “all meta’, using { Field: “name”, Value: “amateur” } or { “name” : “name”, “value”: “amateur” }. This “meta key-value” approach is a stupid format that doesn’t provide any extra extensibility, yet completely destroys the concept of a useful schema.

This poor design also complicates json query (jq) (see cookbook too)

The recipe to extract the value you want:

$ jq -r '.[] | select( .Field == "properties").Value' output.json
this is a terrible design

With this input file:

$ cat output.json
[
  {
    "Field": "description",
    "Value": "human description of a terrible design"
  },
  {
    "Field": "enabled",
    "Value": true
  },
  {
    "Field": "id",
    "Value": "fa722ed8b4f56d14bcf77537"
  },
  {
    "Field": "name",
    "Value": "your-name"
  },
  {
    "Field": "properties",
    "Value": "this is a terrible design"
  }
]
This entry was posted in Software Engineering. Bookmark the permalink.