5 простых способов извлечь значения из JSON с помощью Bash

В этой статье блога мы рассмотрим различные методы извлечения значений из JSON с помощью сценариев Bash. JSON (нотация объектов JavaScript) — это популярный формат обмена данными, и возможность извлекать из него определенные значения — обычная задача во многих сценариях написания сценариев и автоматизации. Мы рассмотрим пять различных подходов, попутно предоставляя примеры кода и пояснения. Итак, приступим!

Метод 1: использование jq
jq — это легкий и мощный инструмент командной строки для анализа JSON. Он обеспечивает простой и выразительный синтаксис для навигации и извлечения данных из документов JSON.

Пример кода:

value=$(echo "$json" | jq -r '.key')
echo "The value of 'key' is: $value"

Метод 2: использование grep и sed
Если вы предпочитаете использовать стандартные инструменты командной строки, вы можете объединить grep и sed для извлечения значений на основе шаблонов или разделителей.

Пример кода:

value=$(echo "$json" | grep -o '"key": "[^"]*' | sed 's/"key": "\(.*\)"/\1/')
echo "The value of 'key' is: $value"

Метод 3: использование awk
Другой удобный инструмент командной строки для обработки текста — awk. Его можно использовать для извлечения значений из JSON, указав разделители полей и шаблоны.

Пример кода:

value=$(echo "$json" | awk -F '[:,]' '/"key"/{getline; gsub(/"/, "", $2); print $2}')
echo "The value of 'key' is: $value"

Метод 4. Использование встроенных возможностей Bash для манипуляций со строками.
Если вы предпочитаете избегать внешних инструментов, вы можете положиться на встроенные возможности Bash по манипуляции со строками, такие как сопоставление с образцом и расширение параметров.

Пример кода:

[[ $json =~ "\"key\": \"([^\"]+)" ]]
value="${BASH_REMATCH[1]}"
echo "The value of 'key' is: $value"

Метод 5: использование инструмента командной строки Python
Хотя этот подход требует установки Python, он обеспечивает гибкий и мощный способ анализа и извлечения значений из JSON с помощью встроенного jsonмодуль.

Пример кода:

value=$(python -c "import json; data = json.loads('$json'); print(data['key'])")
echo "The value of 'key' is: $value"

В этой статье мы рассмотрели пять различных методов извлечения значений из JSON с помощью сценариев Bash. В зависимости от ваших предпочтений и конкретных требований вашего проекта вы можете выбрать метод, который наилучшим образом соответствует вашим потребностям. Независимо от того, выберете ли вы специализированный инструмент, такой как jq, или используете встроенные возможности Bash, извлечение значений из JSON в Bash является выполнимой задачей. Имея в своем распоряжении эти методы, вы сможете эффективно работать с данными JSON в рабочих процессах создания сценариев и автоматизации.