Inhaltsverzeichnis

jq ist ein Kommandozeilen-Tool zur Verarbeitung und Formatierung von JSON-Daten. Es erlaubt das Filtern, Transformieren und Abfragen von JSON-Strukturen.

Daten formatieren

echo '{"name":"Alice","age":25}' | jq .
{
  "name": "Alice",
  "age": 25
}

Mehrstufiges JSON navigieren

{
  "user": {
    "name": "Alice",
    "details": {
      "age": 25,
      "city": "Berlin"
    }
  }
}
echo '{"user":{"name":"Alice","details":{"age":25,"city":"Berlin"}}}' | jq .user.details.city
"Berlin"

Arrays

[
  {"name": "Alice", "age": 25},
  {"name": "Bob", "age": 30}
]
echo '[{"name":"Alice","age":25},{"name":"Bob","age":30}]' | jq '.[0].name'
"Alice"
echo '[{"name":"Alice","age":25},{"name":"Bob","age":30}]' | jq '.[].name'
"Alice"
"Bob"

JSON Filtern

echo '[{"name":"Alice","age":25},{"name":"Bob","age":30}]' | jq '[.[] | select(.age > 25)]'
[
  {
    "name": "Bob",
    "age": 30
  }
]

JSON Transforrmieren

echo '[{"name":"Alice","age":25},{"name":"Bob","age":30}]' | jq '[.[] | {name: (.name | ascii_upcase), age}]'
[
  {
    "name": "ALICE",
    "age": 25
  },
  {
    "name": "BOB",
    "age": 30
  }
]