使用jq构建JSON时使用参数作为键名

时间:2019-11-25 17:19:52

标签: json bash jq

我很难在bash脚本中创建有效的JSON变量以使用curl发送它。

我有一个用户名=密码的关联数组,我想在其JSON中“嵌入”。

我以jq结尾,但是当我想使用参数作为键时抛出错误

不起作用:

body=$( jq -n \
  --arg id "${id}" \
  --arg sig "${signature}" \
  --arg user1 "${user1}" \
  --arg user2 "${user2}" \
  --arg passuser1 "${pass[${user1}]}" \
  --arg passuser2 "${pass[${user2}]}" \
  '{instanceid: $id, signature: $sig, user: {$user1: $passuser1, $user2: $passuser2}}')

正在工作(user1和user2在这里未引用变量):

body=$( jq -n \
  --arg id "${id}" \
  --arg sig "${signature}" \
  --arg passuser1 "${pass[${user1}]}" \
  --arg passuser2 "${pass[${user2}]}" \
  '{instanceid: $id, signature: $sig, user: {user1: $passuser1, user2: $passuser2}}')

我想使用数组而不是每次都编辑JSON,有没有办法做到这一点而不用jq做奇怪的事情?

0 个答案:

没有答案
相关问题