在外壳中使用逗号分隔的字符串来使用jq更新JSON列表?

时间:2019-01-15 13:52:41

标签: json bash shell jq

如何使用json键附加值?

    .ul-unactive{
  max-height:0;
  transition: .5s;
  width:100%;

}
.ul-active{
  max-height:500px;
  transition: max-height 1s ease-in;
  width:100%;

}

1 个答案:

答案 0 :(得分:1)

如果您的目标是在逗号上分割一个字符串以生成列表,然后在jq中使用您的列表,则可能类似于:

val=text1,text2,text3
jq --arg val "$val" '.whatever.item |= ($val | split(","))' <<<'{"whatever": {}}'

注意:

  • 在shell赋值中没有必要使用成对的双引号集-它们实际上相互抵消,并且不成为变量值的一部分。
  • jq参数--arg用于将变量从Shell上下文传递到jq上下文。
  • |=构造用于修改嵌套值,同时仍对较大的文档求值。