Bash:
Arbeta med JSON

Hur man gör:

Bash har i sig inga inbyggda JSON-tolkningsfunktioner, men jq är en kraftfull kommandoradsprocessor för JSON som fyller detta gap. Så här använder du den:

Läsa en JSON-fil:

Exempel data.json:

{
  "name": "Jane Doe",
  "email": "[email protected]",
  "location": {
    "city": "New York",
    "country": "USA"
  }
}

För att läsa och extrahera namnet från JSON-filen:

jq '.name' data.json

Output:

"Jane Doe"

Modifiera JSON-data:

För att uppdatera staden till “Los Angeles” och skriva tillbaka till filen:

jq '.location.city = "Los Angeles"' data.json > temp.json && mv temp.json data.json

Tolka JSON från en variabel:

Om du har JSON i en Bash-variabel kan jq fortfarande bearbeta den:

json_string='{"name": "John Doe", "email": "[email protected]"}'
echo $json_string | jq '.name'

Output:

"John Doe"

Arbete med arrayer:

Givet en array av objekt i JSON:

{
  "items": ["apple", "banana", "cherry"]
}

För att extrahera det andra objektet (indexering börjar på 0):

jq '.items[1]' data.json

Output:

"banana"

För mer komplexa operationer och filtrering har jq en omfattande manual och handledningar tillgängliga online, vilket gör det till ett mångsidigt verktyg för alla dina Bash/JSON-behov.