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
}
]