Добавление $ i цикла FOR в значение ключа JSON - PullRequest
0 голосов
/ 28 мая 2018

Я ищу способ добавить переменную массива в значение ключа JSON.

Часть JSON, которая не работает, выглядит следующим образом:

"target":["some/dir/'$i'"]

AЦикл FOR:

for i in ${ARRAY[*]}
do
    cURL -k -v -H 'Content-type: application/json' -d '{"id":1,"method":"exec","params":[{"data":{"action":"get","resource":"/api/v2/monitor/XXX/XXX/XXX","target":["some/dir/'$i'"]},"url":"XXX"}],"session":"SESSION_KEY",}'
done

Но вместо получения значения $ i из массива значение $ i становится пустым:

"target":["some/dir/"]

Где моя ошибка, пожалуйста?

1 Ответ

0 голосов
/ 28 мая 2018

Используйте jq, чтобы убедиться, что все закодировано правильно:

template='
{
  id: 1, 
  method: "exec",
  params: [
    {
      data: {
        action: "get",  
        resource: "/api/v2/monitor/XXX/XXX/XXX",
        target: ["some/dir/" + $dir]
      },
      url: "XXX"
    }
  ],
  session: "SESSION_KEY"
}
'

for i in "${array[@]}"; do
  data=$(jq -n --arg dir "$i" "$template")
  curl -v -k -H 'Content-type: application/json' -d "$data"
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...