Shell Script - получить значения от JSON - PullRequest
0 голосов
/ 16 июня 2020

Я работаю над заданием по синтаксическому анализу JSON с помощью сценария оболочки. Есть ли способ получить значения из JSON при его выполнении? Например, мне нравится выводить значение id, body и age. Я пытаюсь использовать cut, sed, grep, но не jq. Стоит ли использовать for-l oop? В настоящее время я могу перенаправить только json в текстовый файл.

{
"postId": 1,
"id": 1,
"name": "id labore ex et quam laborum",
"email": "Eliseo@gardner.biz",
"body": "laudantium enim quasi est quidem magnam voluptate ipsam eos\ntempora",
"age": 28
}

1 Ответ

2 голосов
/ 16 июня 2020

Если вы действительно должны использовать подход оболочки (который, на самом деле, имеет много подводных камней), И ваш фактический json ввод не сильно отличается от того, что вы показали, это мой вариант. Прочтите два поля, ключ и значение, и если ключ совпадает, сделайте что-нибудь со значением.

while read -r key value; do
  case $key in
    ('"id":')   printf '%s\n' "id=${value%,}";;
    ('"body":') printf '%s\n' "body=${value%,}";;
  esac
done < json.txt

Это выведет

id=1
body="laudantium enim quasi est quidem magnam voluptate ipsam eos\ntempora"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...